2010-04-30 5 views
11

yolk -l me donne des informations que j'ai 114 paquets installés sur mon Ubuntu 10.04. Après avoir créé nouveau répertoire en utilisant virtualenvproblème de jaune de virtualenv

virtualenv virt_env/virt1 --no-site-packages --clear

je suis passé à cela, mon message a changé et yolk -l me donne à nouveau les mêmes 114 paquets.

Que se passe-t-il là-bas?

+0

Installation de jaune dans l'environnement virtuel aidé ... assez étrange. –

Répondre

18

Activer un virtualenv fonctionne en changeant votre shell PATH afin que le répertoire bin/de virtualenv soit le premier. C'est tous le il le fait. Cela signifie que lorsque vous exécutez "python", il exécute la copie de virtualenv du binaire Python au lieu de votre système global python.

Si vous avez du jaune installé globalement, cependant, le seul binaire "jaune" sur votre PATH est/usr/local/bin/yolk ou un tel; l'activation de virtualenv ne change pas cela (car il n'y a pas de script "yolk" dans votre bin/dir virtualenv). Et le script/usr/local/bin/yolk a naturellement votre interpréteur Python système dans sa ligne shebang.

C'est pourquoi l'installation du jaune dans virtualenv résout le problème; car il ajoute un script jaune dans votre bin/dir virtualenv qui contient le python de virtualenv dans sa ligne shebang. Si vous ne voulez pas installer de jaune dans chaque virtualenv, vous pouvez aussi simplement copier le script-wrapper jaune depuis/usr/local/bin ou n'importe où dans le répertoire bin de votre virtualenv, et changer manuellement la ligne shebang pour pointer vers le python de votre virtualenv. Cela ne fonctionnera pas avec un paquet virtuel --no-site-packages, cependant, parce que le wrapper de script ne sera pas capable de trouver les paquets jaunes réels qu'il doit importer! Si vous voulez utiliser le jaune dans un virtualenv --no-site-packages, votre seul choix est de l'installer ici.

+1

Cela peut être fait automatiquement chaque fois que vous créez un venv avec un script bootstrap: http://www.virtualenv.org/en/latest/#creating-your-own-bootstrap-scripts – Hollister

+0

Si vous utilisez virtualenvwrapper (qui Je recommande fortement), ajoutez 'pip install yolk' à votre fichier postmkvirtualenv. http://www.doughellmann.com/docs/virtualenvwrapper/scripts.html#scripts-postmkvirtualenv – Hollister

0

Si le problème n'est pas lié à votre chemin (je suppose que c'est le cas), supprimez votre dossier lib et scripts dans votre répertoire de projet pour effacer les paramètres de virtualenv. Recréez l'environnement virtuel en utilisant la ligne de commande que vous avez publiée. Activez le virtualenv, puis installez le jaune.

+1

Comme alternative, essayez 'which yolk' - si c'est dans (yourvirtualenv)/bin alors essayez de fermer votre terminal et de le rouvrir, activer votre virtualenv et essayer 'yolk -l' une fois de plus. Je l'ai réparé pour moi – maxm

Questions connexes