2011-01-12 3 views
1

Я установил django и python как this link, предлагаемый с помощью macports. Однако я хотел бы использовать virtualenv для установки большего количества пакетов. Я понимаю, что если я не перейдите в --no-site-packages в virtualenv, я должен получить установленные пакеты в дополнение к тем пакетам, которые я устанавливаю в виртуальную среду. Это верно?Macports и virtualenv site-packages Fallback

В качестве примера, я установил Джанго через MacPorts, а затем создать виртуальную среду, но я не могу импортировать Джанго внутри этой виртуальной среды:

[[email protected]]:~$ mkvirtualenv django-test 
New python executable in django-test/bin/python 
Installing setuptools............done. 
... 
(django-test)[[email protected]]:~$ pip install django-debug-toolbar 
Downloading/unpacking django-debug-toolbar 
    Downloading django-debug-toolbar-0.8.4.tar.gz (80Kb): 80Kb downloaded 
    Running setup.py egg_info for package django-debug-toolbar 
Installing collected packages: django-debug-toolbar 
    Running setup.py install for django-debug-toolbar 
Successfully installed django-debug-toolbar 
Cleaning up... 
(django-test)[[email protected]]:~$ python 
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import django 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named django 
>>> 

Так что я могу установить пакеты в виртуальную среду, но он не собирает глобальные пакеты сайтов. Или я ничего не делаю правильно/не вижу чего-то/непонимания, как работает virtualenv?

У меня есть Mac OS 10.6 (Snow Leopard), обновлены мои пакеты macports и я использую python26 macports (через python_select python26).

Edit:

Также я проверил, что мой MacPorts PATH настроена правильно. Вот некоторые результаты:

[[email protected]]:~$ python --version 
Python 2.6.6 
[[email protected]]:~$ echo $PATH 
/opt/local/bin:/opt/local/sbin:/Users/streeter/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/streeter/.ec2/bin 
[[email protected]]:~$ source dev/python-environments/test/bin/activate 
(test)[[email protected]]:~$ python --version 
Python 2.6.1 
(test)[[email protected]]:~$ 

virtualenv и virtualenvwrapper оба были установлены с помощью pip, не используя MacPorts, как кажется, не создать файл источника в /usr/local/bin/virtualenvwrapper.sh, так что я не уверен, как получить псевдонимы virtualenvwrapper.

+0

Вы пробовали: 'mkvirtualenv django-test --python =/path/to/macports/python'? – jfs

ответ

1

Вы не используете MacPorts Python, о чем свидетельствует версия и дата. (Попробуйте ввести /usr/bin/python2.6, а затем /opt/local/bin/python2.6.) Просто установка MacPorts python_select не хорошо, если вы не поставить MacPorts bin каталог первой на вашем исполнении оболочки PATH:

$ export PATH=/opt/local/bin:$PATH 

Вы, возможно, потребуется воссоздать virtualenv убедившись, что вы используя MacPorts Python вместо поставляемого Apple Python.

EDIT: С дополнительной информацией, я бы предположил, что ваш $ PATH не был установлен должным образом перед первоначально сорсинг virtualwrapper.shhere, как описано. Я предлагаю вам вернуться и следовать инструкциям там, убедившись, что вы действительно установили virtualenv и virtualenvwrapper в каталог сайтов сайтов MacPorts, а не в систему Python. Обратите внимание: версия virtualenvwrapper, доступная в настоящее время через MacPorts для Python 2.6, является более старой, 1.20; сценарий оболочки для него имеет a different name.

+0

См. Мое редактирование выше. – Streeter