Использование virtualenv в Mac OS X - PullRequest
3 голосов
/ 09 мая 2009

Я использую virtualenv в Ubuntu, и он работает, поэтому я пытаюсь использовать его на своем Mac, и у меня возникают проблемы.

Команда virtualenv успешно создает каталог, и easy_install с радостью устанавливает в него пакеты, но я не могу импортировать ничего, что установил. Кажется, что sys.path настроен неправильно: он не включает виртуальный site-packages, даже если я использую опцию --no-site-packages. Я что-то не так делаю?

Я использую Python 2.5.1 и virtualenv 1.3.3 в Mac OS 10.5.6

Редактировать : Вот что происходит, когда я пытаюсь использовать 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']

Редактировать 2 : Использование сценария activate_this.py работает, но запуск source bin/activate - нет. Надеюсь, это поможет сузить проблему?

Ответы [ 2 ]

6 голосов
/ 09 мая 2009

У меня не было проблем с той же версией OS X / Python / 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',

Одна вещь, которую нужно проверить - в чистой оболочке запустите следующее:

$ 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'

Или из документов virtualenv:

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

Это должно заставить текущую оболочку Python в virtualenv

Кроме того, после запуска source test/bin/activate попробуйте запустить python с флагом -v (подробный), он может дать что-то полезное.

1 голос
/ 22 мая 2009

Оказывается, что мои проблемы с virtualenv были моей собственной ошибкой: я настроил свой .bash_profile для хакерства с переменной окружения PYTHONPATH, что вызвало проблемы с импортом.

Спасибо всем, кто нашел время, чтобы ответить; извините за то, что больше не занимаюсь проблемой самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...