尽管使用虚拟环境基础解释器被调用

时间:2015-02-21 19:17:37

标签: python django

使用:django 1.2python 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

然而,它仍然没有使用我想要的解释器。

我也不明白为什么虚拟环境会首先使用外部解释器,而不是它安装的解释器。

1 个答案:

答案 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 .

然后完成您的应用安装。我希望这会有所帮助。