没有名为django.core的模块


68

卸载旧的Django版本后,我已经更新到最新的Django版本1.0.2。但是现在当我运行django-admin.py时,出现以下错误。我该如何解决?

Traceback (most recent call last):
  File "C:\Python25\Lib\site-packages\django\bin\django-admin.py", line 2, in <module>
    from django.core import management
ImportError: No module named django.core

1
看起来像是“陈旧的路径”问题。不能说。在Python Shell中,您是否能够成功完成import django和/或from django.core import management
ayaz

是的,我可以没有任何错误做两件事
Sirish

1
您是否安装了多个Python版本?您如何调用django-admin?
2008年

请运行以下命令:import sys; 打印sys.path
S.Lott

3
删除整个Python目录并再次安装Python / django之后,问题消失了。

Answers:


36

您必须确保Django位于PYTHONPATH中。

要进行测试,只需import django在python shell中执行即可。应该没有输出:

ActivePython 2.5.1.1 (ActiveState Software Inc.) based on
Python 2.5.1 (r251:54863, May  1 2007, 17:47:05) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>>

如果你安装的Django通过setuptoolseasy_install或与setup.py附带Django的),然后在您检查site-packages,如果.pth文件(easy-install.pthdjango.pth,...)指向正确的文件夹。

嗨。


3
如果您阅读了关于他的问题的评论,则他已经尝试过导入djago,它可以工作。
哈森

2
@hasen他可能在本地应用程序文件夹中有django,但在他的pythonpath中没有django。
比约恩

44

我在Windows上遇到了同样的问题,似乎已经找到了问题。我同时安装了2.7和3.x。似乎与.py的关联程序有关:

在命令行中输入:

assoc .py

结果是:

.py = Python.File

这意味着.py与Python.File相关联

然后我尝试了这个:

ftype Python.File

我有:

Python.File =“ C:\ Python32 \ python.exe”“%1”%*

这意味着在命令行中。

您需要做的就是更改关联:

ftype Python.File =“ C:\ Python27 \ python.exe”“%1”%*

那一切都好!


1
这帮助了很多时间。我遇到过同样的问题。即使我运行Python并且获得的版本是2.7,当我运行C:\ test.py之类的文件时,该版本仍在运行python 3.2。不过,我想向您的解决方案添加一个提示。您必须以管理员身份运行命令提示符才能运行,否则您将收到此错误“ Acess is Denied”
JoeMoe1984'9

1
从我的角度来看,这个答案对激活了virtualenv或多个Python安装(尤其是Windows)的Python新手(就像我一样)最有帮助。我希望这个答案在本主题的顶部。我也认为,Django教程应该对此情况进行说明(Python + Windows + VirtualEnv /多个Python)。在教程的第一部分,它只是说要type django-admin.py startproject mysite,这是非常隐式的。
ajukraine 2012年

它也对我有很大帮助。
Tariq M Nasim

太棒了 我还找到了一个博客,该博客可以在不永久更改文件关联的情况下解决此问题。djangonautlostinspace.wordpress.com/2012/04/16/...
phazei

我对这个答案投了赞成票,但使用不同版本的python并没有问题,相反,这是主要python安装与上的python安装之间的冲突virtualenv。答案引导我找到了运行python django-admin.py而不是仅仅解决的方法django-admin.py
TheBlueSky

24

您可以通过提供django-admin.py文件的完整路径来解决此问题。

python c:\python25\scripts\django-admin.py startproject mysite

谢谢!但是在我的情况下,我写的是“ python3”而不是“ python”。解决了!
Breno Medeiros de Oliveira

16

我今天遇到了这个问题,原来我的路径中有C:\ Python26,而.py文件与Python 3.1相关联。通过“程序和功能”或运行.msi来修复Python的正确版本将修复关联。


1
这也是我的问题。注意:如果运行python命令显示版本2.X,请不要上当。执行django文件仍然可以链接到3.1可执行文件。
亚当A

1
请注意,这是指Windows的文件关联。在Windows 7这可以在控制面板>程序>默认程序中改变>关联文件...
布赖恩·奥尔蒂斯

看来无法像我所想的那样手动修复。命令行参数最终中断。只需重新安装Python。
Brian Ortiz 2010年

我在django找不到core库时遇到了类似的问题,但是对我来说,cygwin使用的是我假设的内置python(2.6),而不是我在cygwin之外安装的python 2.7。解决方案是使用cmd.exe替代cygwindjango-admin.py startproject
TankorSmash 2013年

11

就像上面提到的,这对我来说是一个PYTHONPATH环境变量问题,但是没有人真正展示过如何为可以使用额外说明的人们设置它。

Linux(bash)

我在主文件夹的bashrc文件中设置了此变量(.bashrc是我的文件,因为我的shell是/ bin / bash)。

vim ~/.bashrc
export PYTHONPATH=/usr/local/python-2.7.2/lib/python2.7/site-packages:$PYTHONPATH
source ~/.bashrc

该路径应该在您的django源所在的任何地方。我的位于/usr/local/python-2.7.2/lib/python2.7/site-packages/django,所以我只指定了/usr/local/python-2.7.2/lib/python2.7/site-没有django部分的软件包。

OSX

在OSX上,路径为/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages,您可以将其添加到/etc/profile

sudo echo "PYTHONPATH=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages:$PYTHONPATH" >> /etc/profile
source /etc/profile

我使用zsh时显示zsh: permission denied: /etc/profile
Deepansh Parmani

9

我确定它与我的设置中的错误内容有关,但是我遇到了同样的问题,如果我这样称呼它,它将正常工作

c:\somedir>python c:\Python26\scripts\django-admin.py startproject mysite

我遇到了同样的问题,这对我也起作用...谁知道为什么?
山姆

2
我找到了答案,我在同一台机器上安装了python3和python27,这是Windows操作系统。如果我在控制台中执行命令c:\> python,它将调用python27,因此django存在,但是如果我以这种方式执行python脚本:“ c:\> test.py”,它将被python3执行,因此错误(我已经习惯了linux,但我仍然感觉自己迷失在Windows env处理中)
Sam Sam

1
我有Python 2.5和Python 2.7,这也对我有用!早些时候,我只是在cmd上执行命令,django-admin.py startproject mysite我做了上面Noad所写的,但是发现我与.py的关联与Python 2.7有关,所以我不确定为什么这样做特别有效。
bad_keypoints 2013年

1
在Windows-virtualenv上,必须使用此语法。
布伦特81年

7

如果您使用的是Windows,则不要使用“ django-admin.py”运行,因为这将调用您的外部python.exe来执行,并且它无法读取虚拟环境内部的django。尝试使用“ python django-admin.py”在您的环境中使用python.exe。


5

这对我使用bitnami djangostack起作用:

python apps\django\django\bin\django-admin.py startproject mysite

2

我在Windows XP中有同样的问题。原因是我安装了多个python版本(2.6,3.2).windows的PATH正确设置为python26,但是.py文件与python32相关联。我希望.py文件与python26关联。要解决该问题,简便的方法是右键单击* .py(例如django-admin.py),然后选择“打开方式为->选择程序...” ->“浏览...”(选择c:\ python26 \ python.ext)->“确定”。然后,我们可以在cmd中运行django-admin.py,而无需使用解释性前缀“ c:\ python26 \ lib \ site-packages \ django \ bin”。


2

我知道这是一个老问题,但是我遇到了同样的问题,这是因为我将virtualenv与django一起使用,但是Windows中的.py文件扩展名与主要的Python安装相关,因此运行django-admin.py直接来自命令提示符,导致它在未安装django的情况下以主要的Python安装运行。

因此,由于我不知道Windows中是否有任何等效的哈希磅,因此通过运行python,然后运行django-admin.py的完整路径来解决此问题,或者您也可以修改virtualenv批处理脚本以更改文件关联并在停用它时将其改回(尽管我不确定如何做,因为我对批处理脚本不是很熟悉)。

希望这可以帮助,


2

我遇到了同样的问题,回想起我在前一天下午安装了iPython。我卸载了iPython,问题消失了。顺便说一句,我正在使用virtualenv。我已经在系统范围的site-packages目录中安装了iPython,因此我只是在所使用的每个virtualenv中重新安装了iPython。昨天安装了iPython之后,我注意到一条警告消息(来自iPython的0.13版),它检测到我正在使用virtualenv,如果遇到任何麻烦,我应该在每个virtualenv中安装iPyton。


1

如果您的路径变量正确,并且可以在python shell中执行以下操作:从django.core导入管理中,确保您在“ django-admin.py”之前包含“ python”,例如:python django-admin.py startproject thelittlethings


1

最简单但不是最优雅的解决方案是从Scripts文件夹复制django-admin.py。Scripts文件夹位于Python安装目录下。在我的计算机上,它位于C:\ Python26 \ Scripts中。然后将django-admin.py粘贴到您要从中运行文件的文件夹中。诚然,使用系统路径将提供灵活性。如果您急忙,这是一个特殊的解决方案。然后输入例如python django-admin.py startproject fluffyteaspoons,您将创建项目fluffyteaspoons


1

就我而言,我在OS X Lion上,并且已经用自制软件安装了Python ,但我遇到了同样的错误,但是这里发布的解决方案都没有帮助我。就我而言,我只需要编辑脚本:

vim /usr/local/share/python/django-admin.py

我注意到第一行是错误的,因为它指向系统的python安装:

#!/usr/bin/python

我刚刚对其进行了修改,使其指向自制软件的安装:

#!/usr/local/bin/python

它起作用了:)


1

这适用于Mac OS X

在终端中运行python在python中:import sys print sys.path

查找站点包路径。我在sys.path的输出中找到了这个:'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages'

退出python。查找当前站点包的位置。我的位于/Library/Python/2.6/site-packages

现在请小心:检查站点包的内容以确保其为空。也就是说,目录/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages应该为空,或仅包含自述文件。如果是,请删除该目录,因为您现在要进行符号链接。

ln -s /Library/Python/2.6/site-packages /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

如果不删除文件夹,则将符号链接放在文件夹中。

其他选项是将路径添加到sys.path。我选择了symlink路由,因为我有几个版本的python,我不需要几个版本的Django,只想指向已知的工作副本。


1

我刚刚在Windows Vista中安装了Python 2.7和3.2,并在python 2.7和Django 1.4.3中使用virualenv时,得到了相同的ImportError。

我将资源管理器中.py文件的文件关联从3.2更改为2.7。右键单击.py文件并更改设置。我仍然收到ImportError。

cmd.exe以管理员身份运行并复制了较早的版本ftype内容。发生错误后,请注意,双引号不能正确地从浏览器复制到cmd。在cmd中重写了命令,但是我仍然收到ImportError。

在活动虚拟环境的根目录中,我python从此处显式给出了命令和django-admin.py的路径。 (env_p27) C:\Users\Gemmu\env_p27>python .\Scripts\django-admin.py startproject mysite

那行得通。

感谢大家的所有帮助。


1

这发生在我身上,因为我跑pipsudo,而我的virtualenv是设置这么Django的安装为root用户,但不是在virtualenv中无法导入外部网站的包,即使我有virtualenv中被激活,当我跑须藤。

解决方案切换到root,激活venv,然后进行pip安装。


1

坚持什么地衣说...如果你使用的是Windows,那么请不要运行“django-admin.py” ...

我在虚拟环境中运行,因此创建新项目的路径和命令如下所示:

(DjangoEnv)  C:\users\timreilly\Envs\django\Scripts\django-admin.exe startproject myproject

DjangoEnv是我的虚拟环境的名称。


0

像往常一样,安装脚本未能设置世界的读取/执行权限:)执行以下操作:

sudo find  /usr/lib/python2.5/site-packages/django -type d -exec chmod go+rx {} \;
sudo find  /usr/lib/python2.5/site-packages/django -type f -exec chmod go+r {} \;

0

感谢您发布问题和答案。我安装了两个版本的Python,但是root指向/ usr / bin版本,并且我想在/ usr / local / bin中使用2.7版本的Python。重建/重新安装Django和mysqldb之后,一切都很好,并且我没有收到错误消息。


0

小小的快速修复方法只是创建符号链接 ln -s $SOMEWHERE/lib/python2.6/site-packages/django/ ./django


0

我遇到了同样的问题,很明显我遇到了PYTHONPATH配置问题。解决方案非常简单,只需django.pth在安装Python的目录(目录为C:\ Python27)中的PYTHONHOME\Lib\site-packages目录中创建一个具有该名称的文件PYTHONHOME。将以下行添加到django.pth文件中:

PYTHONHOME\Lib\site-packages\django

当然要换 PYTHONHOME按照我的说明到Python的安装目录。

请注意,您可以编辑,django.pth以包含要包含在中的任何目录PYTHONPATH。实际上,您可以根据需要命名该文件,path.pth例如,如果您希望它更通用并包含多个目录路径。


0

好吧..我做一些激进的事情。我取消安装python,然后从“环境Variables/PATH this: ;C:\Python26\Scripts;C:\Python26. 及其工作”中删除...我之前遇到过您的问题。


0

我意识到发生这种情况是因为我没有参加比赛python setup.py install。这样就建立了环境。


0

看了很多书后,我找到了适合我的解决方案。

我有

 django version 1.9.2
  1. 在“路径”中设置所有系统变量。在用户变量和PYTHONPATH中都没有重复的副​​本。 在此处输入图片说明

  2. 然后在regedit中设置Value

在此处输入图片说明

  1. 通过命令在所需的文件夹中创建了virtualenv

    虚拟环境

  2. 最后在cmd中

使用的命令

django-admin.py startproject MySite

***and not this***

python django-admin.py startproject MySite 

在“ VENV”的根文件夹中

而且有效

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.