【问题标题】:Django - "no module named django.core.management"Django - “没有名为 django.core.management 的模块”
【发布时间】:2012-12-10 10:13:41
【问题描述】:

尝试从命令行运行 Django 时出现以下错误。

File manage.py, line 8, in <module>
     from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

关于如何解决这个问题的任何想法?

【问题讨论】:

  • 你到底想运行什么,Python 的版本,Django 的版本等...?
  • 我本地主机的版本是 Python 2.6.6 和 1.4.3 Dyango。 Python 服务器是 2.6.6,对于 Dyango 无法检查是否知道如何检查?
  • 我在尝试进行迁移时随机收到此错误,并且我在安装了 Django 的虚拟环境中。我只是再次运行该命令,它就起作用了。
  • 我有同样的错误。我安装了 django,但它安装在 dist-packages 目录中。 Dockerfile 使用 ubuntu 基础镜像。所以我更新了 Dockerfile 以添加这个 ENV PYTHONPATH="$PYTHONPATH:/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages" 但它仍然没有加载 django 应用程序。

标签: python django


【解决方案1】:

听起来你没有安装 django。您应该检查此命令生成的目录:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

看看你那里是否有 django 包。

如果站点包中没有 django 文件夹,那么您没有安装 django(至少对于该版本的 python)。

您可能安装了多个版本的 python,而 django 位于另一个版本中。如果你输入python然后按TAB,你可以找到所有的python版本。这是我拥有的所有不同的python。

$python
python            python2-config    python2.6         python2.7-config  pythonw2.5
python-config     python2.5         python2.6-config  pythonw           pythonw2.6
python2           python2.5-config  python2.7         pythonw2          pythonw2.7

您可以对每个版本的 python 执行上述命令,并查看每个版本的 site-packages 目录,看看它们是否安装了 django。例如:

python2.5 -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
python2.6 -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

如果您碰巧在 python2.6 中找到 django,请尝试使用您的原始命令

python2.6 manage.py ...

【讨论】:

  • 这是命令“/usr/lib/python2.6/site-packages”之后的内容
  • 进入文件夹“/usr/lib/python2.6/site-packages”看看里面是否有一个叫django的文件夹。
  • 其他一切都不是 Django :D
  • 嗨,请检查我编辑的答案。也许你的 django 是在另一个版本的 python 中。
  • 如果您使用 virtualenv 或在虚拟环境中安装 django,则必须在虚拟环境中才能运行,除非您已将其全局安装在系统中。
【解决方案2】:
sudo pip install django --upgrade 

为我做了诀窍。

【讨论】:

  • 你的回答对我有用,所以我给了它一个赞成票。但是,仅凭您的回答是不够的,因为当我运行 sudo pip install django --upgrade 时,它给了我一个新错误:No module named psycopg2。所以,我运行了sudo pip install psycopg2 --upgrade,它成功了。
  • 原来我没有安装 django...即使我以前在机器上使用过它。很奇怪。
  • 我遇到了超时问题,所以我做了sudo pip install --default-timeout=100 django --upgrade,一切都很顺利。
  • 如果您使用“pyenv”,您需要以下内容:pip install django --upgrade --user
【解决方案3】:

我遇到了同样的错误,我以这种方式修复了它:

我必须使用以下命令激活我的虚拟环境

source python2.7/bin/activate

【讨论】:

    【解决方案4】:

    很可能在您的manage.py 中,第一行以!/usr/bin/python 开头,这意味着您使用的是系统全局python,而不是虚拟环境中的。

    所以替换

    /usr/bin/python
    

    ~/projectpath/venv/bin/python
    

    你应该很好。

    【讨论】:

    • 谢谢。它有帮助。
    • 我的项目有一个 bash 脚本,它调用了应用程序的一部分,并且在那个 bash 脚本中是 python startapp,所以我不得不将它更改为 /path/to/venv/bin/python startapp,它工作。感谢您指出这一点!
    【解决方案5】:

    好吧,我今天在安装 virtualenv 和 django 后遇到了同样的错误。对我来说,我使用 sudo (sudo pip install django) 来安装 django,而我试图在没有 sudoma​​nage.py runserver /强>。我刚刚添加了 sudo 并且它起作用了。 :)

    【讨论】:

      【解决方案6】:

      您是否正在使用带有 Virtual Wrapper 的虚拟环境?你在 Mac 上吗?

      如果是这样试试这个:

      在命令行中输入以下内容以启动虚拟环境,然后对其进行处理

      1.)

      source virtualenvwrapper.sh
      

      source /usr/local/bin/virtualenvwrapper.sh
      

      2.)

      workon [environment name]
      

      注意(来自新手) - 不要在环境名称周围加上括号

      【讨论】:

      • 我花了大约两秒钟的时间才发现 virtualenv 没有启用,但这是我的问题......所以点赞,因为我点击了 google 一次 google 按钮并且没有阅读任何出现的内容.
      【解决方案7】:

      我在运行命令时遇到了同样的问题-

      python manage.py startapp

      但我的问题是我在虚拟环境之外运行该命令。所以只需先激活您的虚拟环境并再次运行该命令 -

      【讨论】:

      • 我的项目有一个 bash 脚本,它调用了应用程序的一部分,并且在那个 bash 脚本中是 python startapp,所以我不得不将它更改为 /path/to/venv/bin/python startapp,并且它起作用了。
      【解决方案8】:

      我有同样的经历,这就是我所做的。

      首先我的安装

      pip install -r requirements.txt

      不在我的活动环境中。所以我所做的就是激活我的环境然后再次运行

      pip install -r requirements.txt

      【讨论】:

        【解决方案9】:

        当您的计算机上未安装 django 时会出现此问题。当 django 没有安装时,这意味着 django.core.management 模块也没有安装。所以它没有找到这个模块,它给出了错误。
        为了解决这个问题,我们应该使用 pip 安装 django。打开命令行 cmd(在 windows 上)并输入 as

        pip install django
        

        此命令将在您的计算机中安装 django。如果你没有安装 pip。你应该安装点子。 Here how to install pip on windows

        【讨论】:

          【解决方案10】:

          好的,它是这样的:

          您已经创建了一个虚拟环境,而 django 模块仅属于该环境。由于 virtualenv 将自己与其他一切隔离开来,因此您会看到这个。

          通过此获取更多帮助:

          http://www.swegler.com/becky/blog/2011/08/27/python-django-mysql-on-windows-7-part-i-getting-started/

          1.你可以切换到你的虚拟环境所在的目录,然后运行django模块。

          2.或者,您可以通过运行 pip 或 easy_install 将 django 全局安装到您的 python->site-packages

          使用 pip 的命令:pip install django

          然后这样做:

          import django print (django.get_version()) (取决于你使用的python版本。这适用于python 3+系列)

          然后你可以运行这个:python manage.py runserver 并通过输入 :localhost:8000 检查你的网络浏览器,你应该会看到 django 驱动的页面。

          希望这会有所帮助。

          【讨论】:

            【解决方案11】:

            如果这对其他人有帮助...我遇到了这个问题,因为我的 virtualenv 默认为 python2.7,而我在使用 Ubuntu 时使用 Python3 调用 Django。

            检查我的 virtualenv 使用的是哪个 python:

            $ which python3
            >> /usr/bin/python3
            

            用指定的python3创建了新的virtualenv(使用virtualenv wrapper https://virtualenvwrapper.readthedocs.org/en/latest/):

            $ mkvirtualenv --python=/usr/bin/python3 ENV_NAME
            

            python 路径现在应该指向 virtualenv python:

            $ which python3
            >> /home/user/.virtualenvs/ENV_NAME/bin/python3
            

            【讨论】:

              【解决方案12】:

              如果您更改了 python 项目的目录结构,也会发生这种情况(我这样做了,然后对行为的变化感到困惑)。如果这样做,则需要更改 /bin/activate 文件中的一行。所以,假设你的项目在

              /User/me/CodeProjects/coolApp/
              

              您的激活文件位于

              /User/me/CodeProjects/coolApp/venv/bin/activate
              

              当您设置项目时,您将项目更改为

              /User/me/CodeProjects/v1-coolApp/
              

              什么的。然后你需要打开

              /User/me/CodeProjects/v1-coolApp/venv/bin/activate
              

              找到它说的那一行

              VIRTUAL_ENV="/User/me/CodeProjects/coolApp"
              export VIRTUAL_ENV
              

              并将其更改为

              VIRTUAL_ENV="/User/me/CodeProjects/v1-coolApp"
              

              重新激活之前

              【讨论】:

                【解决方案13】:

                就我而言,我使用的是 Ubuntu。问题可能是我没有以普通用户身份写入该文件夹的权限。您可以在命令前简单地添加sudo,它应该可以完美运行。在我的情况下sudo python manage.py syncdb

                【讨论】:

                  【解决方案14】:

                  我遇到了同样的问题,我收到此消息的原因是因为我正在执行“manage.py runserver”而执行“python manage.py runserver”修复了它。

                  【讨论】:

                  • 请注意,如果使用 Python 3,则需要为 python3 manage.py runserver。否则导入错误仍然存​​在。
                  【解决方案15】:

                  我遇到了同样的问题,下面的工作很好,你应该在项目中导航主文件夹而不是输入:

                  source bin/activate 
                  

                  【讨论】:

                    【解决方案16】:

                    我的案例我在 mac 上使用了 pyCharm 5。我也遇到了这个问题,运行这个命令后我的问题就解决了

                    sudo pip install django --upgrade 
                    

                    【讨论】:

                      【解决方案17】:

                      有同样的问题。以 root 身份运行命令“python manage.py migrate”。在 root 访问下工作正常(sudo python manage.py migrate)

                      【讨论】:

                      • 那是治标不治本。如果 sudo 有效,则可能是权限问题。
                      • 当然,这只是诊断问题的一种方法。
                      【解决方案18】:

                      你可以这样尝试:python3 manage.py migrate(使 sur 在src/ 目录中)

                      您也可以尝试使用pip install -r requirements.txt(确保您在迁移后键入ls 时看到requirements.txt 文件

                      如果还是不行,试试pip install django

                      希望对你有帮助

                      【讨论】:

                        【解决方案19】:

                        我在尝试使用 python manage.py runserver 时遇到了同样的问题。就我而言,我只使用 sudo su。以 root 身份使用终端,然后再试一次,它可以部分工作。所以我使用 python manage.py migrate 命令并修复它。

                        【讨论】:

                          【解决方案20】:

                          在运行服务器之前必须先选择你的项目,输入这个 workon your_project_name 然后 python manage.py runserver

                          【讨论】:

                            【解决方案21】:

                            这是因为虚拟环境配置。您需要在 Python 的虚拟环境上工作。您应该尝试使用命令提示符,

                            workon virtual_enviornment_name
                            

                            【讨论】:

                              【解决方案22】:

                              文件和目录所有权冲突将导致此处出现问题。确保项目下的目录和文件的所有权属于当前用户。 (您可以使用带有 -R 选项的 chown 命令更改它们。)尝试重新运行该命令:这解决了我在运行“第一个 Django 应用程序”示例时遇到的问题:

                              python manage.py startapp polls
                              

                              【讨论】:

                                猜你喜欢
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 2014-07-20
                                • 1970-01-01
                                • 1970-01-01
                                • 2014-04-12
                                • 2015-01-27
                                • 2014-08-17
                                相关资源
                                最近更新 更多