我环顾四周,我发现的问题的答案还没有让我解决它。
我想使用孤立的virtualenv环境,但由于某种原因,virtualenv不断加载全球网站包,当在Django的壳…
我试图清理PATHvariables,直到只剩下c:\ Python26 \ Scripts和c:\ Python26。 然后我创造我的环境。
virtualenv --distribute --no-site-packages myproject
然后我激活virtualenv。 现在PATH(无关的variables):
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可以find我的设置。
set PYTHONPATH=E:\Development\django_projects\myproject\ set DJANGO_SETTINGS_MODULE=settings.development
现在我启动django-admin.py shell和
In [1]: import BeautifulSoup In [2]: BeautifulSoup.__file__ Out[2]: 'C:\\Python26\\lib\\site-packages\\BeautifulSoup.pyc'
这怎么可能?
洞察力的闪光
当input这个,我突然得到它。 .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文件扩展名耦合到我的virtualenv的python可执行文件,而不是系统定义的python可执行文件?
一点点额外的.bat hackery可以很容易地解决这个问题。 我的标准补充activate.bat是:
REM custom venv settings set PYTHONPATH=%\VIRTUAL_ENV%;%\VIRTUAL_ENV%\conf;%\VIRTUAL_ENV%\apps set DJANGO_SETTINGS_MODULE=settings ftype Python.File=%VIRTUAL_ENV%\Scripts\python.exe %1 %*
并停用.bat
REM restore ftype ftype Python.File=C:\tools\Python27\python.exe %1 %*
你可以创建一个.bat文件并修改PATH和PYTHONPATH,然后从那个.bat文件运行.py。 这样的事情我想
set PATH=C:\Python26; python myfile.py
当然,添加任何你想要的路径。
我和Dan在使用cmd.exe进行Windows 7安装时遇到了“拒绝访问”一样的问题。
但我发现这个工作围绕使用替换外壳TCC / LE和一个自定义的启动文件…
在工作目录下创建子目录config。 在这个目录下创建TCC / LE的启动文件,名为tcstart.btm
@echo off rem Override system python binding to handle virtualenvironments set .py;.pyc=python.exe
现在在桌面上创建(复制)TCC / LE快捷方式并适当地重新命名。 打开快捷方式属性并添加到目标“C:\ django \ config \ tcstart.btm”。 你可能要设置开始到有用的东西,如C:\ django
本指南中有关安装Django和Windows的解决方案。