使用:django 1.2
,python 2.7
,Windows 7。
在激活虚拟环境的终端呼叫manage.py
时,import error
模块获得django
。
这是因为正在使用错误的解释器 - 根目录中的python27
解释器(当在虚拟环境中直接运行python.exe
时,import django...
成功)。
为什么会这样?我认为虚拟环境会阻止外部使用任何东西。如何覆盖此行为并让其使用python27\virtualenv\django12env\scripts\python.exe
运行manage.py
?
编辑:我跑了virtualenv --no-site-packages -p C:\python27\virtualenvs\django12env\scripts\python.exe
广告回来了Running virtualenv with interpreter C:\python27\virtualenvs\django12\scripts\python.exe Using real prefix 'C:\\Python27' New python executable in django12env\Scripts\python.exe Installing setuptools
然而,它仍然没有使用我想要的解释器。
我也不明白为什么虚拟环境会首先使用外部解释器,而不是它安装的解释器。
答案 0 :(得分:-1)
python的虚拟环境并不意味着从其他库中为您提供完整的沙箱。如果你想使用你自己的解释器及其库,那么将--no-site-packages标志传递给你的virtualenv命令(可选择传递你想要使用的解释器的绝对路径)
virtualenv --no-site-packages -p C:\python27\bin\python.exe django12env
http://docs.python-guide.org/en/latest/dev/virtualenvs/
编辑:评论回复 Virtualenv实际上并没有--no-site-packages选项。它旨在允许开发人员轻松管理项目及其相关应用程序和版本,而无需弄清系统路径或管理每个项目的PYTHONPATH集。设想解释器用于整个系统。
就你想要一起使用不同的解释器而言,我的建议是下载你想要的python distributable,在命令行设置你的pytyhon路径,用该解释器安装setuptools和pip以及virtualenv。
set PYTHONPATH=C:\venvs\django12\python26\;C:\venvs\django12\python26\Scripts
下载ez_setup.py https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
C:\venvs\django12\python26\python.exe C:\Downloads\ez_setup.py
C:\venvs\django12\python26\Scripts\easy_install pip
C:\venvs\django12\python26\Scripts\pip install virtualenv
C:\venvs\django12\python26\Scripts\virtualenv --no-site-packages .
然后完成您的应用安装。我希望这会有所帮助。