2009-05-09 8 views
3

J'utilise virtualenv sous Ubuntu et ça bouge, donc j'essaie de l'utiliser sur mon Mac et j'ai des problèmes.Utiliser virtualenv sous Mac OS X

La commande virtualenv crée le répertoire et easy_install y installe volontiers des packages, mais je ne peux pas importer ce que j'installe. Il semble que sys.path n'est pas défini correctement: il n'inclut pas le site-packages virtuel, même si j'utilise l'option --no-site-packages. Est-ce que je fais quelque chose de mal?

J'utilise Python 2.5.1 et virtualenv sous Mac OS 1.3.3 10.5.6

Modifier: Voici ce qui se passe lorsque je tente d'utiliser virtualenv:

$ virtualenv test 
New python executable in test/bin/python 
Installing setuptools............done. 
$ source test/bin/activate 
(test)$ which python 
/Users/Justin/test/bin/python 
(test)$ which easy_install 
/Users/Justin/test/bin/easy_install 
(test)$ easy_install webcolors 
[...] 
Installed /Users/Justin/test/lib/python2.5/site-packages/webcolors-1.3-py2.5.egg 
Processing dependencies for webcolors 
Finished processing dependencies for webcolors 
(test)$ python 
[...] 
>>> import webcolors 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named webcolors 
>>> import sys 
>>> print sys.path 
['', 
'/Library/Python/2.5/site-packages/SQLObject-0.10.2-py2.5.egg', 
'/Library/Python/2.5/site-packages/FormEncode-1.0.1-py2.5.egg', 
..., 
'/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5', 
'/Users/Justin/test/lib/python25.zip', 
'/Users/Justin/test/lib/python2.5', 
'/Users/Justin/test/lib/python2.5/plat-darwin', 
'/Users/Justin/test/lib/python2.5/plat-mac', 
'/Users/Justin/test/lib/python2.5/plat-mac/lib-scriptpackages', 
'/Users/Justin/test/Extras/lib/python', 
'/Users/Justin/test/lib/python2.5/lib-tk', 
'/Users/Justin/test/lib/python2.5/lib-dynload', 
'/Library/Python/2.5/site-packages', 
'/Library/Python/2.5/site-packages/PIL'] 

Modifier 2: L'utilisation du script activate_this.py fonctionne, mais pas de source bin/activate. Espérons que cela aide à affiner le problème?

+1

Quel est le chemin Python que vous obtenez dans cet interpréteur (par exemple, la valeur de sys.path)? Sans cela, il est difficile de savoir par où débuter le débogage. –

+1

Vous avez raison, j'aurais dû inclure cela. La partie du chemin que j'ai tracée est juste plus de fichiers d'oeufs. –

Répondre

1

Il s'est avéré que mes problèmes avec virtualenv étaient de ma faute: j'avais configuré mon .bash_profile pour muck avec la variable d'environnement PYTHONPATH, qui a causé les problèmes d'importation.

Merci à tous ceux qui ont pris le temps de répondre; désolé de ne pas enquêter sur le problème plus loin par moi-même.

6

Je n'ai pas eu de problèmes avec le même OS X/Python/version virtualenv (OS X 10.5.6, Python 2.5.1, virtualenv 1.3.1)

$ virtualenv test 
New python executable in test/bin/python 
Installing setuptools............done. 
$ source test/bin/activate 
(test)$ which python 
/Users/dbr/test/bin/python 
$ echo $PATH 
/Users/dbr/test/bin:/usr/bin:[...] 
$ python 
[...] 
>>> import sys 
>>> print sys.path 
['', '/Users/dbr/test/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg', 

Une chose à vérifier - dans une coquille propre, exécutez la commande suivante:

$ virtualenv test 
$ python 
[...] 
>>> import sys 
>>> sys.path 
['', '/Library/Python/2.5/site-packages/elementtree-1.2.7_20070827_preview-py2.5.egg'[...] 
>>> sys.path.append("test/bin/") 
>>> import activate_this 
>>> sys.path 
['/Users/dbr/test/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg' 

Ou des virtualenv docs:

activate_this = '/path/to/env/bin/activate_this.py' 
execfile(activate_this, dict(__file__=activate_this)) 

Cela devrait forcer le courant Python shell dans le virtualenv

En outre, après avoir exécuté source test/bin/activate essayez d'exécuter python avec le drapeau -v (verbose), cela peut produire quelque chose d'utile.

+0

La technique 'import activate_this' a parfaitement fonctionné; Je suppose qu'il manipule sys.path différemment que le script 'activate'? –