Macports и virtualenv сайт-пакеты Fallback - PullRequest
1 голос
/ 12 января 2011

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

Например, я установил django через macports, а затем создал виртуальную среду, но я не могу импортировать django из этой виртуальной среды:

[streeter@mordecai]:~$ mkvirtualenv django-test
New python executable in django-test/bin/python
Installing setuptools............done.
...
(django-test)[streeter@mordecai]:~$ 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)[streeter@mordecai]:~$ 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 и использую macports 'python26 (через python_select python26).

Edit:

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

[streeter@mordecai]:~$ python --version
Python 2.6.6
[streeter@mordecai]:~$ 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
[streeter@mordecai]:~$ source dev/python-environments/test/bin/activate
(test)[streeter@mordecai]:~$ python --version
Python 2.6.1
(test)[streeter@mordecai]:~$ 

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

1 Ответ

1 голос
/ 12 января 2011

Вы не используете 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 вместо Python, поставляемого Apple.

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

...