【问题标题】:No Module named django.core没有名为 django.core 的模块
【发布时间】:2010-09-23 16:13:28
【问题描述】:

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

【问题讨论】:

  • 看起来像一个“陈旧的路径”问题。不能说。在 Python shell 中,您能否成功执行 import django 和/或 from django.core import management
  • 是的,我可以同时做到这两点而不会出现任何错误
  • 您是否安装了多个 Python 版本?你是如何调用 django-admin 的?
  • 请运行以下命令:import sys;打印系统路径
  • 删除整个Python目录,重新安装Python/django后,问题就没有了。

标签: python django


【解决方案1】:

我在 Windows 上遇到了同样的问题,看来我找到了问题所在。我安装了 2.7 和 3.x。好像和.py的关联程序有关:

在命令行输入:

关联.py

结果是:

.py=Python.文件

这意味着 .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" %*

那么一切都好!

【讨论】:

  • 这帮了大忙。我遇到过同样的问题。即使我运行 Python 并且我得到的版本是 2.7,当我运行像 C:\test.py 这样的文件时,版本运行的是 python 3.2。不过,我想为您的解决方案再添加一个提示。您必须以管理员身份运行命令提示符才能正常工作,否则您将收到此错误“访问被拒绝”
  • 从我的角度来看,这个答案对 Python 新手(就像我一样)最有帮助,他们已经激活了 virtualenv 或多个 Python 安装(尤其是在 Windows 上)。我希望这个答案位于主题的顶部。另外我认为,Django 教程应该有关于这种情况的说明(Python + Windows + VirtualEnv/Multiple Pythons)。在教程的first part 中,它只是说输入django-admin.py startproject mysite,这是非常隐含的。
  • 它也帮了我很多..很好的答案!
  • 太棒了。我还发现了一个在不永久更改文件关联的情况下解决问题的博客。 djangonautlostinspace.wordpress.com/2012/04/16/…
  • 我对这个答案投了赞成票,但是我对不同版本的 python 没有问题,相反,这是主要 python 安装和virtualenv 上的一个冲突。答案引导我找到运行python django-admin.py 而不仅仅是django-admin.py的解决方案
【解决方案2】:

您必须确保 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,那么如果.pth 文件(easy-install.pthdjango.pth、. ..) 指向正确的文件夹。

喂。

【讨论】:

  • 如果你阅读了关于他的问题的 cmets,他已经尝试过 import djago 并且它有效。
  • @hasen 他可能在他的本地应用程序文件夹中有 django,但在他的 pythonpath 中没有 django。
【解决方案3】:

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

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

【讨论】:

  • 谢谢!但就我而言,我写的是“python3”而不是“python”。解决了!
【解决方案4】:

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

【讨论】:

  • 这也是我的问题。注意:如果运行 python 命令显示版本 2.X,请不要上当。执行 django 文件仍然可以链接到 3.1 可执行文件。
  • 请注意,这是指 Windows 的文件关联。在 Windows 7 中,这可以在控制面板 > 程序 > 默认程序 > 关联文件中进行更改...
  • 看起来这不能像我想的那样手动修复。命令行参数最终被破坏。只需重新安装 Python。
  • 我有一个类似的问题,django 找不到 core 库,但对我来说问题是 cygwin 使用的是我认为它是内置的 python (2.6),而不是 python我在 cygwin 之外安装的 2.7,所以我的解决方案是使用 cmd.exe 而不是 cygwin 到 django-admin.py startproject
【解决方案5】:

这对我来说是一个 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
【解决方案6】:

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

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

【讨论】:

  • 我也遇到了同样的问题,这对我也有用...有人知道为什么吗?
  • 我找到了答案,我在同一台机器上安装了 python3 和 python27,它是 Windows 的。如果我在控制台中执行命令 c:\>python,它会调用 python27,所以 django 存在,但是如果我以这种方式执行 python 脚本:“c:\>test.py”它会用 python3 执行,所以错误(我习惯了linux,我仍然觉得我在windows env处理中迷失了方向)
  • 我有 Python 2.5 和 Python 2.7 这对我也有用!早些时候我只是在 cmd 上执行 django-admin.py startproject mysite 并且我做了上面 Noad 写的,但发现我的 .py 与 Python 2.7 的关联,所以我不确定为什么这特别有效。
  • 在 windows-virtualenv 上,必须使用这个语法。
【解决方案7】:

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

【讨论】:

    【解决方案8】:

    这对我有用 bitnami djangostack:

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

    【讨论】:

      【解决方案9】:

      我在 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”。

      【讨论】:

        【解决方案10】:

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

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

        希望这会有所帮助,

        【讨论】:

          【解决方案11】:

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

          【讨论】:

            【解决方案12】:

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

            【讨论】:

              【解决方案13】:

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

              【讨论】:

                【解决方案14】:

                这适用于 Mac OS X

                在终端运行python 在蟒蛇中: 导入系统 打印系统路径

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

                【讨论】:

                  【解决方案15】:

                  我刚刚在安装了 Python 2.7 和 3.2 并在 Python 2.7 和 Django 1.4.3 中使用 virualenv 的 Windows Vista 中遇到了相同的 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&gt;python .\Scripts\django-admin.py startproject mysite

                  成功了。

                  感谢大家的帮助。

                  【讨论】:

                    【解决方案16】:

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

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

                    【讨论】:

                      【解决方案17】:

                      继续 lichenbo 所说的...如果您使用的是 Windows,请不要使用 'django-admin.py'...

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

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

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

                      【讨论】:

                        【解决方案18】:

                        在我的例子中,我使用的是 OS X Lion,并且我使用homebrew 安装了 Python 我遇到了同样的错误,但这里发布的解决方案都没有帮助我。就我而言,我只需要编辑脚本:

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

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

                        #!/usr/bin/python
                        

                        我只是修改它指向 homebrew 的安装:

                        #!/usr/local/bin/python
                        

                        它成功了:)

                        【讨论】:

                          【解决方案19】:

                          像往常一样,安装脚本未能设置全局读取/执行权限 :) 这样做:

                          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 {} \;
                          

                          【讨论】:

                            【解决方案20】:

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

                            【讨论】:

                              【解决方案21】:

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

                              【讨论】:

                                【解决方案22】:

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

                                PYTHONHOME\Lib\site-packages\django
                                

                                当然,您必须按照我的说明将PYTHONHOME 更改为 Python 的安装目录。

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

                                【讨论】:

                                  【解决方案23】:

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

                                  【讨论】:

                                    【解决方案24】:

                                    我意识到发生这种情况是因为我没有运行python setup.py install。这设置了环境。

                                    【讨论】:

                                      【解决方案25】:

                                      在阅读了很多之后,我找到了一个适合我的解决方案。

                                      我有

                                       django version 1.9.2
                                      
                                      1. 在“路径”中设置所有系统变量。用户变量和 PYTHONPATH 中没有重复副本。

                                      2. 然后在regedit中设置Value

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

                                        virtualenv VENV

                                      2. 最后在 cmd 中

                                      使用的命令

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

                                      在“VENV”的根文件夹

                                      成功了

                                      【讨论】:

                                        猜你喜欢
                                        • 2023-01-20
                                        • 2014-12-25
                                        • 1970-01-01
                                        • 2010-10-25
                                        • 2020-10-31
                                        • 2014-08-05
                                        • 1970-01-01
                                        • 1970-01-01
                                        • 1970-01-01
                                        相关资源
                                        最近更新 更多