没有名为django.core的模块

时间:2008-11-23 14:09:25

标签: python django

卸载旧的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

25 个答案:

答案 0 :(得分:41)

我在Windows上遇到同样的问题,似乎我发现了问题。我安装了2.7和3.x.它似乎与.py:

的关联程序有关

在命令行类型中:

  

assoc .py

结果是:

的.py = Python.File

表示.py与Python.File

相关联

然后我试了一下:

  

ftype Python.File

我得到了:

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

这意味着命令行.py与我的Python 3.2安装相关 - 这就是为什么我不能只输入“django-admin.py blah blah”来使用django。

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

  

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

然后Everythong没关系!

答案 1 :(得分:36)

你必须确保django在你的PYTHONPATH中。

要测试,只需从python shell执行import django。应该没有输出:

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
>>>

如果您通过setuptoolseasy_install或django附带的setup.py安装了django,请检查site-packages是否有.pth文件(easy-install.pthdjango.pth,...)指向正确的文件夹。

HIH。

答案 2 :(得分:22)

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

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

答案 3 :(得分:16)

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

答案 4 :(得分: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

答案 5 :(得分:9)

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

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

答案 6 :(得分:7)

如果您使用的是Windows,请不要使用'django-admin.py'运行,因为这会调用您的外部python.exe执行,它无法读入虚拟环境中的django。试试'python django-admin.py'在你的环境中使用你的python.exe。

答案 7 :(得分:5)

这对我有用bitnami djangostack:

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

答案 8 :(得分:2)

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

答案 9 :(得分:2)

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

答案 10 :(得分:1)

尽管不是最优雅的最简单的解决方案是从Scripts文件夹中复制django-admin.py。可以在Python安装下找到Scripts文件夹。在我的电脑上,它位于C:\ Python26 \ Scripts中。然后将django-admin.py粘贴到您尝试运行该文件的文件夹中。 确实,使用系统路径将提供灵活性。如果你赶时间,这是一个特别的解决方案。然后输入例如python django-admin.py startproject fluffyteaspoons,你将创建项目fluffyteaspoons

答案 11 :(得分:1)

在我的情况下,我使用的是OS X Lion,我使用homebrew安装了Python 我得到了同样的错误,但这里发布的解决方案都没有帮助我。在我的情况下,我只需编辑脚本:

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

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

#!/usr/bin/python

我刚修改它以指向自制软件的安装:

#!/usr/local/bin/python

它有效:)

答案 12 :(得分:1)

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

所以,既然我不知道Windows中是否有相同的哈希值,我通过运行python后跟django-admin.py的完整路径解决了这个问题,或者你也可以修改virtualenv批处理脚本来改变文件关联并在停用它时将其更改回来(虽然我不知道该怎么做,因为我对批处理脚本并不熟悉)。

希望这有帮助,

答案 13 :(得分:1)

如果你的路径变量是正确的,你可以从python shell执行:从django.core导入管理,确保你在“django-admin.py”之前包含“python”:python django-admin。 py startproject thelittlethings

答案 14 :(得分:1)

这发生在我身上,因为我将pip作为sudo运行,而我的virtualenv设置为不导入外部网站包,因此Django是为root用户安装的,但不是在virtualenv中安装,即使我有当我运行sudo时,virtualenv被激活了。

解决方案切换到root,激活venv然后执行pip install。

答案 15 :(得分:1)

这适用于Mac OS X

在终端运行python中 在python中:   导入系统   print sys.path

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

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

现在要小心:检查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的路径。我选择了符号链接路由,因为我有几个版本的python,我不想要几个版本的Django,只是想指向已知的工作副本。

答案 16 :(得分:1)

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

我将Explorer中的.py文件的文件关联从3.2更改为2.7。右键单击.py文件并更改设置。我仍然有ImportError。

我以管理员身份运行cmd.exe,并对早期的ftype内容进行了复制。发生错误后,请注意双引号无法从浏览器正确复制到cmd。在cmd中重写了命令,但我仍然遇到了ImportError。

在actived虚拟环境的root中,我从那里明确地给出了python命令和django-admin.py的路径。 (env_p27) C:\Users\Gemmu\env_p27>python .\Scripts\django-admin.py startproject mysite

那很有效。

感谢所有人的帮助。

答案 17 :(得分: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 {} \;

答案 18 :(得分:0)

经过阅读后,我发现了一个适合我的解决方案。

我有

 django version 1.9.2
  1. 在&#34; path&#34;中设置所有系统变量。在用户变量和PYTHONPATH中没有重复副本。 enter image description here

  2. 然后在regedit中设置Value

  3. enter image description here

    1. 通过命令

      在所需的文件夹中创建了virtualenv

      virtualenv VENV

    2. 最后在cmd

    3. 使用了命令

      django-admin.py startproject MySite
      
      ***and not this***
      
      python django-admin.py startproject MySite 
      

      在&#34; VENV&#34;

      的根文件夹中

      它有效

答案 19 :(得分:0)

To tack on to what lichenbo said... If you are using Windows, then Don't run with 'django-admin.py'...

I'm running inside a virtual environment, so the path and command to create a new project looks like:

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

DjangoEnv is the name of my virtual environment.

答案 20 :(得分:0)

我意识到这发生了,因为我没有python setup.py install。这设置了环境。

答案 21 :(得分:0)

嗯......我做了一些激进的事情。我unistall python,我从环境Variables/PATH this: ;C:\Python26\Scripts;C:\Python26.删除 它的工作...... 我以前遇到过你的问题。

答案 22 :(得分:0)

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

PYTHONHOME\Lib\site-packages\django

当然,正如我所解释的那样,您必须将PYTHONHOME更改为Python的安装目录。

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

答案 23 :(得分:0)

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

答案 24 :(得分:0)

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