python - venv - virtualenvwrapper windows




Comment vérifier si virtualenv a été créé avec '--no-site-packages'? (2)

Parfois, j'obtiens des erreurs que je soupçonne être le résultat de mon application Django utilisant des modules Python / applications Django installés à la place de ceux de son virtualenv.

Existe-t-il un moyen de vérifier si virtualenv de mon application a été créé avec '--no-site-packages' sans avoir à le supprimer, puis le recréer comme suit?

deactivate
rmvirtualenv my_env
mkvirtualenv my_env --no-site-packages
workon my_env
pip install -r requirements.txt

Il doit certainement exister un meilleur moyen! Merci.


Un moyen facile est d'ouvrir le shell python interactif et d'exécuter l' import somemodule; print somemodule import somemodule; print somemodule , puis vérifiez le chemin depuis lequel ce module a été importé.

>>> import flask; print flask
<module 'flask' from '/home/xxx/dev/xxx/env/lib/python2.7/site-packages/flask/__init__.pyc'>

contre.

>>> import flask; print flask
<module 'flask' from '/usr/lib64/python2.7/site-packages/flask/__init__.pyc'>

@ La solution de Rob est valide pour les versions plus récentes, j'ai regardé dans le code :).

Si vous en avez un ancien (comme mon 1.4.5), vous pouvez vérifier le chemin python. Si vous avez le répertoire par défaut "site-packages" dans le chemin (par exemple / usr / lib / python / site-packages), votre virtualenv a été créé avec des packages de sites.

Vous pouvez le vérifier à partir de quelque chose comme:

for p in sys.path:
   if p.find("site-packages") >= 0:
     print p

Si vous aviez --no-site-packages , tous vos chemins seraient comme:

/home/user/virtualenv/myenv/lib/python2.6/site-packages/distribute-0.6.10-py2.6.egg
/home/user/virtualenv/myenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg
/home/user/virtualenv/myenv/lib/python2.6/site-packages

Sinon, vous aurez quelque chose comme:

/home/user/virtualenv/myenv/lib/python2.6/site-packages/distribute-0.6.10-py2.6.egg
/home/user/virtualenv/myenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg
/home/user/virtualenv/myenv/lib/python2.6/site-packages
/usr/local/lib/python2.6/site-packages




virtualenvwrapper