Я посмотрел вокруг на SO, и ответы, которые я нашел на мою проблему, еще не позволили мне решить ее.
Я хочу использовать изолированные среды virtualenv, но по той или иной причине virtualenv продолжает загружать глобальные пакеты сайтов, когда в оболочке django ...
Я пытался очистить переменные PATH, пока не остались только c: \ Python26 \ Scripts и c: \ Python26. Затем я создаю свою среду.
virtualenv --distribute --no-site-packages myproject
Затем я активирую virtualenv. PATH теперь (ненужные переменные списаны):
PATH=E:\Development\django_projects\myproject\Scripts;C:\Panda3D-1.7.0\python;C:\Panda3D-1.7.0\bin;c:\python26\Scripts;
PYTHONPATH=C:\Panda3D-1.7.0\
Пока все хорошо. Я запускаю Python ...
>>> import django
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named django
Давайте просто попробуем модуль, который, я уверен, находится в моей директории c: \ python site-packages.
>>> import BeautifulSoup
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named BeautifulSoup
Ура! Нет глобальных пакетов сайта! Тогда к следующему. В командной строке я набираю:
django-admin.py
И это работает! Но подождите ... Я еще не установил Django. Как это возможно?
После этого он становится еще более странным ... Сначала я добавляю их в скрипт virt.alenv activ.bat, чтобы Django мог найти мои настройки.
set PYTHONPATH=E:\Development\django_projects\myproject\
set DJANGO_SETTINGS_MODULE=settings.development
Теперь я запускаю оболочку django-admin.py и
In [1]: import BeautifulSoup
In [2]: BeautifulSoup.__file__
Out[2]: 'C:\\Python26\\lib\\site-packages\\BeautifulSoup.pyc'
Как это вообще возможно?
Вспышка проницательности
При наборе текста я внезапно получаю это. .py - это расширение файла в сочетании с моим исполняемым файлом c: \ python26 \ python.exe, а не virtualenv!
python manage.py
Traceback (most recent call last):
File "manage.py", line 2, in <module>
from django.core.management import execute_manager
ImportError: No module named django.core.management
Хех. У кого-нибудь есть идеи, как связать расширение файла .py с исполняемым файлом python моего virtualenv вместо определяемого системой исполняемого файла python?