Python + Django + Virtualenv导入Django.核心失败了



我在Windows 7上使用Python 2.7.3。我将PATH设置为C:python27,这是原始的python二进制路径。

首先,我新建了一个名为"django"的Virtualenv,没有任何选项,

virtualenv django

第二,激活Virtualenv,

c:workspacepy-envsdjangoScriptsactivate
第三,使用pip安装Django,
pip install django

第四,像下面这样执行django-admin.py startproject SOME_NAME

然后,我在导入django.core包时遇到了一个问题。

失败
(django) c:workspacepython>django-admin.py startproject a
(django) c:workspacepython>python django-admin.py startproject a
(django) c:workspacepython>c:py-envsdjangoScriptspython django-admin.py startproject a
错误消息

Traceback (most recent call last):
  File "C:workspacepy-envsdjangoScriptsdjango-admin.py", line 2, in <module>
    from django.core import management
ImportError: No module named django.core

工作
(django) c:workspacepython>python c:py-envsdjangoScriptsdjango-admin.py startproject a
检查

  • django-admin.py存在于c:py-envsdjangoScripts
  • virtualenv在PATH中添加了C:py-envsdjangoScripts行(使用echo %PATH%检查)
  • pip freeze result只显示Django==1.5

我想通过使用第一个命令开始一个项目:

python django-admin.py startproject a

我还能做什么?

在虚拟环境 (virtualenv)下,调用django-admin的唯一默认方式是通过django-admin.py调用它。

以下作品:

  • django-admin.py startproject PROJECT_NAME

  • django-admin startproject PROJECT_NAME
  • python django-admin startproject PROJECT_NAME
  • python django-admin.py startproject PROJECT_NAME .

发生这种情况是因为windows python解释器总是使用全局解释器而不是当前的python虚拟解释器。

例子:
C:python27python.exe # windows总是使用它

而不是这个

C: env my_env Scripts python.exe

在官方文档中,我发现了这个:http://docs.python.org/2/using/cmdline.html?highlight= - m
当使用-m module-name调用时,给定的模块将位于Python模块路径上,并作为脚本执行。

如果您在console中输入echo %PATH%,将首先看到虚拟环境的路径。因此

(django) c:workspacepython>python -m django-admin startproject my_new_project  

应该

最新更新