2009-12-07 2 views
7
  1. Si un package particulier est installé dans les packages de site globaux et dans le package local, quel package sera importé? Cela fonctionnera-t-il ou aurai-je une erreur?
  2. Quels paquets dois-je mettre dans les paquets de site globaux et lesquels dans le local?

Répondre

9

La réponse précédente TERMINE question 1, mais ne tient pas question 2.

La meilleure pratique générale que j'ai vu quels paquets à mettre à l'échelle mondiale:

d'abord, les paquets Python de base, comme ceux-ci n » t changez avec des problèmes incompatibles à moins que vous ne mettiez à jour une version majeure, et vous voudrez que tous les correctifs de sécurité d'une mise à jour python s'appliquent automatiquement à vos virtualenvs.

Deuxièmement, les paquets qui posent problème à easy_install ou pip sont installés dans chaque virtualenv individuel mais qui ne changent pas très souvent - MySQLdb/psycopg et PIL, par exemple.

À peu près tout le reste devrait aller dans les paquets de votre virtualenv (je recommande fortement d'utiliser pip exigences fichiers et virtualenvwrapper pour rendre cela peu douloureux et facile à configurer sur d'autres machines).

3

L'environnement virtuel nouvellement créé a par défaut accès au répertoire global de packages de site, sauf s'il est créé avec --no-site-packages. L'appel de easy_install (installation de nouveaux paquets) avec un certain environnement activé provoquera l'écrasement local de ceux déjà existants dans les paquets de site globaux (similaire à l'héritage). Environnement utilisera ses propres paquets locaux, lorsqu'ils sont manquants - globaux.

+5

* L'environnement virtuel nouvellement créé a par défaut accès au répertoire global de packages de site * Ceci n'est plus vrai. –

Questions connexes