He mirado alrededor de SO, y las respuestas que he encontrado a mi problema no me han permitido resolverlo todavía.Virtualenv sigue cargando paquetes de sitios globales en Windows
Quiero usar entornos virtualenv aislados, pero por una razón u otra, se sigue cargando paquetes virtualenv sitio global, cuando en el caparazón de Django ...
Me trataron de limpiar variables PATH, hasta que sólo c: \ Python26 \ Scripts y c: \ Python26 permanecen. Luego creo mi entorno.
virtualenv --distribute --no-site-packages myproject
Luego, activo el virtualenv. PATH es ahora (VARs irrelevantes desguazados):
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\
Hasta ahora, todo bien. Lanzo pitón ...
>>> import django
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named django
Vamos a tratar de un módulo Estoy seguro de que está en mi c: \ directorio site-packages de Python.
>>> import BeautifulSoup
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named BeautifulSoup
Yay! ¡Sin paquetes de sitios globales! En el siguiente entonces. Desde el símbolo del sistema, escribo:
django-admin.py
Y funciona! Pero espera ... No he instalado Django todavía. ¿Cómo es esto posible?
Después de esto, se vuelve aún más extraño ... Primero agrego estos a la secuencia de comandos activate.bat de virtualenv para que Django pueda encontrar mi configuración.
set PYTHONPATH=E:\Development\django_projects\myproject\
set DJANGO_SETTINGS_MODULE=settings.development
Ahora lanzan cáscara django-admin.py y
In [1]: import BeautifulSoup
In [2]: BeautifulSoup.__file__
Out[2]: 'C:\\Python26\\lib\\site-packages\\BeautifulSoup.pyc'
¿Cómo es esto posible?
momento de lucidez
Mientras se escribe esto, de repente me entiende. .py es una extensión de archivo junto con mi ejecutable c: \ python26 \ python.exe, ¡en lugar del 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
Heh. ¿Alguien tiene alguna idea de cómo acoplar la extensión de archivo .py al ejecutable python de mi Virtualenv en lugar del ejecutable de Python definido por el sistema?
* cómo acoplar la extensión de archivo .py al ejecutable python de mi virtualenv * Ver [¿Por qué virtualenv en Windows asocia los archivos .py/.pyw/.pyo/.pyc con la versión de virtualenv de los ejecutables de Python?] (Http : //stackoverflow.com/q/4879624/95735) y [Asociación temporal de archivos para una única sesión cmd.exe] (http://stackoverflow.com/q/5583024/95735) –