Virtualenv продолжает загружать глобальные пакеты сайтов в Windows

Я посмотрел на 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. Как это возможно?

После этого все становится еще более странным ... Сначала я добавляю их в сценарий virtualenv activate.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, определенного системой?

7
задан LaundroMat 6 November 2010 в 10:46
поделиться