Je commence à apprendre le python et à l'adorer. Je travaille principalement sur un Mac ainsi que sur Linux. Je trouve que sur Linux (Ubuntu 9.04 principalement) lorsque j'installe un module python en utilisant apt-get, cela fonctionne bien. Je peux l'importer sans problème.
Sur Mac, j'ai l'habitude d'utiliser Macports pour installer tout le matériel Unixy. Cependant, je trouve que la plupart des modules python que j'installe avec lui ne sont pas vus par python. J'ai passé du temps à jouer avec les paramètres PATH et à utiliser python_select. Rien n'a vraiment fonctionné et à ce stade, je ne comprends pas vraiment, je ne fais que fouiller.
J'ai l'impression que Macports n'est pas universellement apprécié pour la gestion des modules python. J'aimerais repartir à zéro en utilisant une approche plus «acceptée» (si c'est le bon mot).
Alors, je me demandais quelle est la méthode que les développeurs Mac Python utilisent pour gérer leurs modules?
Questions bonus:
Utilisez-vous le python d'Apple ou une autre version? Compilez-vous tout à partir des sources ou existe-t-il un gestionnaire de paquets qui fonctionne bien (Fink?).
Réponses:
Le moyen le plus courant de gérer les packages python (si vous n'utilisez pas votre gestionnaire de packages système) est d'utiliser setuptools et easy_install. Il est probablement déjà installé sur votre système. Utilisez-le comme ceci:
easy_install utilise l' index de package Python qui est une ressource incroyable pour les développeurs python. Jetez un œil pour voir quels packages sont disponibles.
Une meilleure option est pip , qui gagne du terrain , car il tente de résoudre de nombreux problèmes associés à easy_install. Pip utilise le même référentiel de packages que easy_install, cela fonctionne mieux. Vraiment, la seule utilisation du temps nécessaire pour utiliser easy_install est pour cette commande:
Après cela, utilisez:
À un moment donné, vous voudrez probablement en savoir un peu plus sur virtualenv . Si vous faites beaucoup de développement python sur des projets avec des exigences de package contradictoires, virtualenv est une aubaine. Il vous permettra d'avoir des versions complètement différentes de différents packages, et de basculer facilement entre eux en fonction de vos besoins.
En ce qui concerne le python à utiliser, s'en tenir au python d'Apple vous donnera le moins de maux de tête, mais si vous avez besoin d'une version plus récente (Leopard est 2.5.1 je crois), j'irais avec le python de macports 2.6.
la source
Votre question a déjà trois ans et certains détails ne sont pas traités dans d'autres réponses:
La plupart des gens que je connais utilisent HomeBrew ou MacPorts , je préfère MacPorts en raison de sa coupe nette de ce qui est un environnement Mac OS X par défaut et de ma configuration de développement. Sortez simplement votre dossier / opt et testez vos packages avec un environnement Python utilisateur normal
MacPorts n'est portable que sous Mac, mais avec easy_install ou pip, vous apprendrez à configurer votre environnement sur n'importe quelle plateforme (Win / Mac / Linux / Bsd ...). De plus, il sera toujours plus à jour et avec plus de packages
Personnellement, je laisse MacPorts gérer mes modules Python pour que tout soit mis à jour. Comme tout autre gestionnaire de paquets de haut niveau (par exemple: apt-get), il est bien meilleur pour le gros du travail des modules avec beaucoup de dépendances binaires. Il n'y a aucun moyen que je construise mes liaisons Qt (PySide) avec easy_install ou pip. Qt est énorme et prend beaucoup de temps à compiler. Dès que vous voulez un package Python qui a besoin d'une bibliothèque utilisée par des programmes non Python, essayez d'éviter easy_install ou pip
À un moment donné, vous constaterez qu'il manque des packages dans MacPorts. Je ne crois pas que MacPorts vous offrira jamais tout le CheeseShop . Par exemple, récemment, j'avais besoin du module Elixir , mais MacPorts ne propose que py25-elixir et py26-elixir, pas de version py27. Dans des cas comme ceux-ci, vous avez:
(assurez-vous de toujours taper pip- (version))
Cela créera une bibliothèque Python supplémentaire dans votre répertoire personnel. Oui, Python fonctionnera avec plus d'un emplacement de bibliothèque: un contrôlé par MacPorts et un utilisateur local pour tout ce qui manque dans MacPorts.
Maintenant, notez que je préfère pip à easy_install. Il y a une bonne raison pour laquelle vous devriez éviter setuptools et easy_install. Voici une bonne explication et j'essaye de m'en éloigner. Une fonctionnalité très utile de pip est de vous donner une liste de tous les modules (avec leurs versions) que vous avez installés avec MacPorts, easy_install et pip lui-même:
Si vous avez déjà commencé à utiliser easy_install, ne vous inquiétez pas, pip peut reconnaître tout ce qui a déjà été fait par easy_install et même mettre à jour les packages installés avec.
Si vous êtes un développeur, gardez un œil sur virtualenv pour contrôler différentes configurations et combinaisons de versions de modules. D'autres réponses le mentionnent déjà, ce qui n'est pas mentionné jusqu'à présent est le module Tox , un outil pour tester que votre package s'installe correctement avec différentes versions de Python.
Bien que je n'ai généralement pas de conflits de version, j'aime avoir virtualenv pour configurer un environnement propre et avoir une vue claire de mes dépendances de paquets. De cette façon, je n'oublie jamais les dépendances dans mon setup.py
Si vous optez pour MacPorts, sachez que plusieurs versions du même paquet ne sont plus sélectionnées comme l'ancien style Debian avec un paquet python_select supplémentaire (il est toujours là pour la compatibilité). Vous avez maintenant la commande select pour choisir la version de Python qui sera utilisée (vous pouvez même sélectionner celles installées par Apple):
Ajoutez tox en plus et vos programmes devraient être vraiment portables
la source
S'il vous plaît voir l' environnement de développement Python OS X . Le meilleur moyen est d'utiliser MacPorts . Téléchargez et installez MacPorts, puis installez Python via MacPorts en tapant les commandes suivantes dans le terminal:
OU
Utilisez le premier ensemble de commandes pour installer Python 2.6 et le second ensemble pour installer Python 3.0. Puis utilisez:
OU
Dans les commandes ci-dessus, remplacez packagename par le nom du package, par exemple:
Ces commandes installeront automatiquement le package (et ses dépendances) pour la version Python donnée.
Pour obtenir la liste complète des packages disponibles pour Python, tapez:
OU
La commande que vous utilisez dépend de la version de Python que vous avez choisi d'installer.
la source
sudo python_select python30
a été remplacé parsudo port select --set python python30
.J'utilise MacPorts pour installer Python et tous les modules tiers suivis par MacPorts dans
/opt/local
, et j'installe tous les modules installés manuellement (ceux qui ne sont pas dans le référentiel MacPorts)/usr/local
, et cela n'a jamais causé de problèmes. Je pense que vous pouvez être confus quant à l'utilisation de certains scripts MacPorts et variables d'environnement.MacPorts
python_select
est utilisé pour sélectionner la version "actuelle" de Python, mais cela n'a rien à voir avec les modules. Cela vous permet, par exemple, d'installer à la fois Python 2.5 et Python 2.6 à l'aide de MacPorts et de basculer entre les installations.Les
$PATH
variables d'environnement n'affectent pas les modules Python chargés.$PYTHONPATH
est ce que vous recherchez.$PYTHONPATH
doit pointer vers les répertoires contenant les modules Python que vous souhaitez charger. Dans mon cas, ma$PYTHONPATH
variable contient/usr/local/lib/python26/site-packages
. Si vous utilisez Python de MacPorts, il configure les autres répertoires appropriés pour vous, vous n'avez donc qu'à ajouter des chemins supplémentaires à$PYTHONPATH
. Mais encore une fois, il$PATH
n'est pas du tout utilisé lorsque Python recherche les modules que vous avez installés.$PATH
est utilisé pour trouver des exécutables, donc si vous installez Python de MacPorts, assurez-vous qu'il/opt/local/bin
est dans votre fichier$PATH
.la source
Il n'y a rien de mal à utiliser une installation MacPorts Python. Si vous installez des modules python à partir de MacPorts mais que vous ne les voyez pas, cela signifie probablement que vous n'invoquez pas le python MacPorts sur lequel vous avez installé. Dans un shell de terminal, vous pouvez utiliser des chemins absolus pour appeler les différents Pythons qui peuvent être installés. Par exemple:
Pour obtenir le bon python par défaut, vous devez vous assurer que votre shell $ PATH est correctement défini pour garantir que le bon exécutable est trouvé en premier. Une autre solution consiste à définir des alias de coquille pour les différents pythons.
Une installation python.org (MacPython) convient également, comme d'autres l'ont suggéré.
easy_install
peut aider mais, encore une fois, comme chaque instance Python peut avoir sa propreeasy_install
commande, assurez-vous que vous invoquez la bonneeasy_install
.la source
Si vous utilisez Python de MacPorts, il a sa propre installation easy_install située à: /opt/local/bin/easy_install-2.6 (pour py26, c'est-à-dire). Ce n'est pas la même chose que d'appeler directement easy_install, même si vous avez utilisé python_select pour modifier votre commande python par défaut.
la source
sudo port install py2.6-pip
obtenir du pip.Avez-vous déjà examiné easy_install ? Il ne synchronisera pas vos macports ou quoi que ce soit du genre, mais il téléchargera automatiquement le dernier package et toutes les dépendances nécessaires, c'est-à-dire
pour le package de test de l'unité de nez, ou
pour le
trac
bug tracker.Il y a aussi un peu plus d'informations sur leur page EasyInstall .
la source
Pour les installations MacPython, j'ai trouvé une solution efficace pour résoudre le problème avec setuptools (easy_install) dans cet article de blog:
http://droidism.com/getting-running-with-django-and-macpython-26-on-leopard
Un conseil pratique consiste à savoir quelle version de python est active dans le terminal:
la source
Lorsque vous installez des modules avec MacPorts, ils n'entrent pas dans la version Apple de Python. Au lieu de cela, ces modules sont installés sur la version MacPorts de Python sélectionnée.
Vous pouvez modifier la version de Python utilisée par défaut à l'aide d'un port mac appelé python_select . instructions ici .
De plus, il existe easy_install . Qui utilisera python pour installer les modules python.
la source
python_select
est désormais obsolète, consultez les nouvelles réponses.Vous avez peut-être déjà
pip3
pré-installé, alors essayez-le!la source
En ce qui concerne la version de python à utiliser, Mac OS fournit généralement une ancienne version de python. C'est une bonne idée de passer à une version plus récente. Vous pouvez télécharger un .dmg depuis http://www.python.org/download/ . Si vous faites cela, n'oubliez pas de mettre à jour le chemin. Vous pouvez trouver les commandes exactes ici http://farmdev.com/ thinking/66/python-3-0- on- mac-os-x-alongside-2-6-2-5-etc-/
la source
J'utilise easy_install avec le Python d'Apple, et cela fonctionne comme un charme.
la source
Installez directement l'un des packages fink (Django 1.6 à partir de 2013-novembre)
Ou créez vous-même une virtualenv:
Ou utilisez fink django plus tout autre paquet installé pip dans un virtualenv
la source