【问题标题】:ImportError: No module named django.core.management when using manage.pyImportError:使用 manage.py 时没有名为 django.core.management 的模块
【发布时间】:2015-08-04 01:37:20
【问题描述】:

我正在尝试在我拥有的 Django 应用程序上运行 python manage.py runserver,但出现此错误:

Traceback (most recent call last):
File "manage.py", line 8, in <module>
 from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

这是pip freeze | grep -i django 的输出,表明我确实安装了 Django:

Django==1.6.5
django-cached-authentication-middleware==0.2.0
django-cors-headers==1.1.0
django-htmlmin==0.7.0
django-static-precompiler==0.9
djangorestframework==2.3.14

此外,尝试运行 /usr/local/bin/python2.7 manage.py runserver 会产生相同的错误。

【问题讨论】:

  • 你是从 manage.py 所在的位置运行命令吗?
  • 你的机器上运行了多少个版本的python?
  • 您是否为此目的使用了虚拟环境?你能分享你的设置文件的详细信息吗?

标签: python django python-2.7 importerror django-manage.py


【解决方案1】:

可能导致您出现问题的问题:

  1. PYTHONPATH 没有配置好,你应该配置它:

    export PYTHONPATH=/usr/local/lib/python2.7/site-packages
    
  2. 你忘记了manage.py开头的#!/usr/bin/env python这一行

  3. 如果您正在使用 virtualenv,您忘记激活虚拟 env 以执行 manage.py 命令(您可能在您的系统上安装了 Django,但没有在您的 virtualenv 上)

    source path/to/your/virtualenv/bin/activate
    

    workon env_name
    
  4. 你有 Python 2.7 和 Python 3.4 与包混淆

  5. 您使用的是非常旧的 Python 2.4,您应该告诉系统使用您的 Python 2.7:

    alias python=python2.7
    

有时重新安装/升级 Django 会修复其中一些问题。

你可能想要执行

python -c "import django; print(django.get_version())"

检查 Django 是否安装在您的 PC 或您的 virtualenv 上(如果您正在使用)

您可以在其他类似问题中找到其他一些解决方案:

【讨论】:

  • 感谢您的回答。我不确定如何正确设置我的 PYTHONPATH。你能给我更多的见解吗?关于其余部分,我确实有 #2 正确,对于 #3 我没有使用虚拟环境,所以这不应该是问题,对于 #4 和 #5 我有 python 使用 Python 2.7 运行 shell。 6 所以我觉得我很好。另外,我已经重新安装了 Django,但我仍然遇到问题。
  • 就我而言,它是第 3 号:我忘记激活虚拟环境。一个简单的:source bin/activate,并解决了:)
【解决方案2】:

为了解决我的问题,我在 .zprofile 中使用了以下行:

export PYTHONPATH=/usr/local/lib/python2.7/site-packages

我尝试导入 Django,但找不到,执行上述操作解决了问题。

【讨论】:

  • 如果出现错误提示'export is not Recognized as an internal or external command,可运行程序或批处理文件,将EXPORT改为SET,即设置PYTHONPATH=/usr/local/lib/ python2.7/site-packages
  • 有没有办法永久配置python路径?因为每次打开cmd窗口都得运行上面的命令
  • 这对我来说非常有效。到目前为止我发现的唯一有效的解决方案。
  • Did 相同但仍然有相同的错误 /django_project$ python manage.py runserver Traceback(最近一次调用最后一次):文件“manage.py”,第 8 行,位于 django.core 的 中。 management import execute_from_command_line ModuleNotFoundError: No module named 'django' 以上异常是以下异常的直接原因: Traceback (最近一次调用最后): File "manage.py", line 14, in ) from exc跨度>
【解决方案3】:

该错误是由于用户环境造成的。事实上,我只是将 PATH 环境 bin 路径添加到 PATH 中,问题就解决了。

PATH=/bin/of_virtualenvironment/:$PATH

【讨论】:

    【解决方案4】:

    我通过运行以下命令解决了同样的错误:

    python3.4 manage.py runserver
    

    上面的命令为我成功执行。因此,您可以尝试的是,如果您使用的是 python 2.7,那么只需将 3.4 替换为 2.7。希望这会有所帮助。

    【讨论】:

    • 这个拯救了我的一天......经过多次努力,我只是改变了python2.7 manage.py changepassword而不是python manage.py changepassword,瞧!
    【解决方案5】:

    当我使用 Python3 为 django 进行所有设置和运行时遇到了同样的问题,但运行了以下命令:

    $ python manage.py migrate
    

    通过使用一致的 Python 版本修复了该问题:

    $ python3 manage.py migrate
    Operations to perform:
      Apply all migrations: sessions, auth, admin, contenttypes
    Running migrations:
      Rendering model states... DONE
      Applying contenttypes.0001_initial... OK
      Applying auth.0001_initial... OK
      Applying admin.0001_initial... OK
      Applying admin.0002_logentry_remove_auto_add... OK
      Applying contenttypes.0002_remove_content_type_name... OK
      Applying auth.0002_alter_permission_name_max_length... OK
      Applying auth.0003_alter_user_email_max_length... OK
      Applying auth.0004_alter_user_username_opts... OK
      Applying auth.0005_alter_user_last_login_null... OK
      Applying auth.0006_require_contenttypes_0002... OK
      Applying auth.0007_alter_validators_add_error_messages... OK
      Applying sessions.0001_initial... OK
    

    在此之前我运行的其他命令是:

    python3 -m pip install django
    django-admin startproject learning_site
    python3 manage.py  runserver 0.0.0.0:8000
    

    【讨论】:

      【解决方案6】:

      在您的 django 文件所在的位置,检查 django-admin.py 的第一行:

      #!/usr/bin/env python
      

      如果你使用python 3+,这里的python 可能在这里指的是python2。所以检查你安装 django 的 python。

      ls -l $(which -a python3)
      

      如果您确实安装了 python3 并且没有链接为 python,请将第一个 shebang 行更改为

      #!/usr/bin/env python3
      

      【讨论】:

      • 我想我误解了你的问题,因为你确实使用python manage.py 来表示环境。只需检查您安装 django 时使用的 python 并使用该 python。您可能需要更改 PYTHONPATH 或 PATH 以指示要使用的 python。
      【解决方案7】:

      直接的问题是缺少django包。对我来说,当我在 virtualenv 中运行 django 时,在我重命名我的工作目录后会出现这个问题。

      重新安装环境对我有用。

      【讨论】:

        【解决方案8】:

        另外,请确保您没有将.bashrcaliases 混淆。 如果.bashrc 包含alias python="/usr/bin/python3" 之类的内容,您将收到此类错误。

        【讨论】:

          【解决方案9】:

          如果你在windows系统中使用virtualenv并运行manage.py runserver,cmd会使用系统的python,而不是virtualenv中的python。 因为如果你在系统中安装python,cmd会自动使用系统中安装的python,而不是virtualenv中的python。 因此,如果您在 Windows 中使用 virtualenv。你需要跑

          >python .\manage.py runserver
          

          【讨论】:

            【解决方案10】:

            我发现我可以从python解释器导入django模块,但是从命令行运行时django-admin.py无法导入它。

            我确认我在虚拟环境中使用了 python 解释器。

            我使用的是 64 位版本的 python。卸载并安装 32 位版本,然后重新创建我的 venv 为我解决了这个问题。

            【讨论】:

              【解决方案11】:

              我通过在我正在处理的虚拟环境中安装 django 解决了这个问题

              【讨论】:

              • 这很模糊。你能解释一下你到底做了什么以及如何以及为什么回答了这个问题?
              【解决方案12】:

              在我的项目中仅使用修复了同样的问题;

              pip install -r requirements.txt
              

              我不需要做任何其他事情。当我运行./manage.py runserver 时,一切正常!

              【讨论】:

                【解决方案13】:

                使用 Pycharm 转到配置添加 runserver 8080 到参数,或者我通过重新启动计算机解决了我的问题....奇怪但有效。 我不必更改 pip 或安装其他任何东西,首先尝试我列出的第一种方法,如果您可以通过 PyCharm 箭头图标运行 manage.py,它会起作用,如果您想返回终端并键入 python manage.py runserver:port 尝试重启你的机器。

                【讨论】:

                  【解决方案14】:

                  在这里尝试解决方案对我不起作用。重新安装 Django 并升级 pip 消除了错误,现在当我运行 python migrate.py runserver

                  时一切正常

                  以下是我使用的 CLI 命令:

                  python -m pip install django

                  python -m pip install --upgrade pip

                  【讨论】:

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