Il n'y a vraiment pas une "réponse" à cette question, mais il ya certainement certains des concepts utiles qui peuvent vous aider à venir à une décision.
La première question qui doit être répondu dans votre cas d'utilisation est la suivante: "je veux utiliser le système de Python?" Si vous souhaitez utiliser le Python distribués avec votre système d'exploitation, puis à l'aide de apt-get install méthode peut être très bien. Selon le système d'exploitation de la méthode de distribution si, vous avez toujours pour vous poser d'autres questions, telles que "je veux installer plusieurs versions de ce paquet?" Si la réponse est oui, alors il est probablement pas une bonne idée d'utiliser quelque chose comme apt. Dpkg assez bien sera juste décompresser une archive à la racine du système de fichier, donc c'est le mainteneur du paquet à assurez-vous que le paquet est installé en toute sécurité dans des conditions très peu d'hypothèses. Dans le cas de la plupart des paquets debian, je suppose (quelqu'un peut se sentir libre pour me corriger ici) qu'ils ont simplement décompresser et de fournir un haut niveau de package.
Par exemple, dire que le colis est "virtualenv", vous auriez à la fin avec l' /usr/lib/python2.x/site-packages/virtualenv
. Si vous l'installez avec easy_install
, vous obtiendrez quelque chose comme /usr/lib/python2.x/site-packages/virtualenv.egg-link
qui pourrait /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.egg
qui peut être un répertoire ou zippé œuf. Pip fait quelque chose de similaire, mais ne pas utiliser des oeufs et au lieu de placer le haut niveau, directement dans l' lib
répertoire.
J'ai peut être désactivé sur les chemins, mais le point est que chaque méthode prend en compte les différents besoins. C'est pourquoi des outils comme virtualenv sont utiles, car ils vous permettent de sandbox de votre Python bibliothèques telles que vous pouvez avoir n'importe quelle combinaison vous avez besoin des bibliothèques et des versions.
Setuptools permet également d'installer les paquets que multiversion ce qui signifie qu'il n'est pas un singulier module_name.egg-link
créé. Pour importer les paquets dont vous avez besoin pour utiliser pkg_resources et l' __import__
fonction.
Pour en revenir à votre question initiale, si vous êtes heureux avec le système de python et un plan sur l'utilisation de virtualenv et pip pour créer des environnements favorables pour les différentes applications, puis l'installation de virtualenv et / ou pip au niveau du système à l'aide de apt-get semble tout à fait pertinent. Un mot de prudence cependant, c'est que si vous envisagez sur la mise à niveau de vos distributions Python, qui peut avoir un effet d'entraînement par le biais de votre virtualenvs si vous renvoient à votre système de packages de site.
Je dois aussi mentionner qu'aucune de ces options est intrinsèquement meilleure que les autres. Ils prennent tout simplement des approches différentes. À l'aide de la version du système est un excellent moyen pour installer Python applications, mais il peut être très difficile à développer en Python. Facile à installer et setuptools est très pratique dans un monde sans virtualenv, mais si vous avez besoin d'utiliser des versions différentes de la même bibliothèque, puis elle aussi devenir assez lourd. Pip et virtualenv vraiment agir plus comme une machine virtuelle. Au lieu de prendre soin d'installer des choses à côté, il vous suffit de créer un tout nouvel environnement. L'inconvénient ici est que 30+ virtualenvs plus tard, vous pourriez avoir utilisé très peu d'espace disque et encombré de votre système de fichiers.
Comme vous pouvez le voir, avec de nombreuses options, il est difficile de dire quelle est la méthode à utiliser, mais avec un peu de recherche dans votre cas, vous devriez être capable de trouver une méthode qui fonctionne.