28

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

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产生相同的错误。

4

14 回答 14

30

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

  1. PYTHONPATH 没有配置好,要配置它,你应该这样做:

    export PYTHONPATH=/usr/local/lib/python2.7/site-packages
    
  2. 您忘记了#!/usr/bin/env pythonmanage.py 开头的行

  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 上(如果您使用的是一个)

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

于 2015-05-22T06:50:13.243 回答
10

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

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

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

于 2015-05-23T05:06:26.230 回答
4

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

python3.4 manage.py runserver

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

于 2016-04-20T22:12:22.153 回答
3

当我使用 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
于 2016-06-20T12:56:14.807 回答
2

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

>python .\manage.py runserver
于 2016-10-29T05:58:27.273 回答
1

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

PATH=/bin/of_virtualenvironment/:$PATH
于 2015-10-01T08:55:14.810 回答
1

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

重新安装环境对我有用。

于 2016-09-20T01:32:47.220 回答
0

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

以下是我使用的 CLI 命令:

python -m pip install django

python -m pip install --upgrade pip

于 2020-07-27T06:43:05.073 回答
0

在您的 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
于 2016-07-25T18:04:31.780 回答
0

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

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

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

于 2017-07-07T20:04:36.917 回答
0

.bashrc另外,请确保您没有弄乱aliases。如果.bashrc包含类似alias python="/usr/bin/python3".

于 2016-09-30T14:41:33.977 回答
0

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

pip install -r requirements.txt

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

于 2019-01-28T07:27:59.100 回答
0

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

于 2020-03-03T19:24:47.120 回答
-1

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

于 2018-05-07T10:07:22.000 回答