Virtualenv: global site-packages vs le site-packages dans l'environnement virtuel

StackOverflow https://stackoverflow.com/questions/1860348

  •  13-09-2019
  •  | 
  •  

Question

  1. Si j'ai un certain paquet installé à la fois dans l'économie mondiale site-packages et dans le local, quel paquet va obtenir importé? Est-ce que le travail même ou vais-je recevoir une erreur?
  2. Quels paquets dois-je mettre dans le site-packages mondial et qui, dans le local?
Était-ce utile?

La solution

La réponse précédente se termine la question 1, mais ne tient pas compte la question 2.

La meilleure pratique générale, je l'ai vu pour les paquets à mettre à l'échelle mondiale:

Tout d'abord, les paquets Python de base, que ceux-ci ne changent pas les problèmes de rétro-incompatibles, sauf si vous êtes mise à niveau d'une version majeure, et vous voulez tout les correctifs de sécurité à partir d'une mise à niveau de python pour appliquer automatiquement à vos virtualenvs.

En second lieu, les paquets qui sont une douleur à easy_install ou pépin installer dans chaque individu virtualenv mais qui ne changent pas très souvent - MySQLdb / psycopg et PIL, par exemple.

À peu près tout le monde devrait aller dans votre forfaits de virtualenv (je vous recommande fortement d'utiliser les exigences pépin fichiers et virtualenvwrapper pour faire ce peu douloureux et facile à installer sur d'autres machines).

Autres conseils

nouvellement créé environnement virtuel par défaut ont accès au répertoire mondial site-packages, à moins créé avec --no-site-packages. Appel easy_install (installation de nouveaux packages) avec certains environnement activé provoque l'écrasement local celles déjà existantes dans le site-packages globaux (analogue à l'héritage). Environnement utilisera ses propres packages locaux, lorsque manquants -. Ceux globaux

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top