【问题标题】:ModuleNotFoundError: No module named 'django' while running manage.pyModuleNotFoundError:运行 manage.py 时没有名为“django”的模块
【发布时间】:2019-09-03 07:27:01
【问题描述】:

我已经安装了 virtualenv,然后在我的 Windows 10 中安装了 django。激活 virtualenv 并运行:python manage.py runserver 后,我得到:

File "manage.py", line 10, in main
from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

The above exception was the direct cause of the following exception:

ImportError: Couldn't import Django. Are you sure it's installed and available
on your PYTHONPATH environment variable? Did you forget to activate a virtual
environment?

在运行django-admin.exe时也发现了:

Note that only Django core commands are listed as settings are not properly
configured (error: Requested setting INSTALLED_APPS, but settings are not
configured. You must either define the environment variable
DJANGO_SETTINGS_MODULE or call settings.configure() before accessing
settings.).

管理.py:

#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys


def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'wordcount.settings')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()

【问题讨论】:

  • 你是否在你的 virtualenv 中安装了django
  • 我已经在 python 的 Scripts 文件夹下的同一路径中为 virtualenv 和 django 完成了 pip3 安装...
  • 在虚拟环境中的终端上运行pip3 freezepip freeze。它将列出已安装的包。检查 django 是否在该列表中。
  • 是的 django 2.2 在那里
  • 我建议将manage.py 中的代码添加到您的问题中。这将增加获得帮助的机会,并减少您的故事被标记和关闭的机会。

标签: django python-3.x windows virtualenv


【解决方案1】:

可以通过创建python程序并导入django来验证是否安装了django

import django 
print (django.VERSION)

上面的代码会打印安装的django版本,确认你是否安装了django

【讨论】:

  • 我已经使用 pip 安装了 django2.2,也使用 pip freeze 进行了验证
  • 你试过python3 manage.py runserver,检查你正在使用的python版本,你会有一个主版本和一个虚拟环境,检查你在virtualenv中使用的版本以及普通外壳
  • python3 显示为无法识别我在 virtualenv 中只有 python.exe
  • 你为什么不尝试故障排除,在虚拟环境和普通shell中使用代码,检查结果
【解决方案2】:

您有 2 个 Python 版本:默认安装的主要版本和 virtualenv 使用的版本。

当您运行pip install django 时,Django 安装在 Python 的主版本中,这是因为 PYTHONPATH 环境变量指的是主版本的路径,而不是 virtualenv。

当您运行python manage.py runserver 时会发生同样的事情。它不会从 virtualenv 运行 python。

要解决这个问题,你需要从 virtualenv 访问 pip,然后你可以用它安装 Django

C:\the\path\to\virtualenv\path\to\pip.exe install django

和 pip 一样,从 virtualenv 运行 python.exe

C:\the\path\to\virtualenv\path\to\python.exe manage.py runserver

如果您使用 PyCharm 进行开发,那么您可以轻松地将您的 venv 设置为解释器。

现在运行 django,就像 pip 一样,你将从 virtualenv 访问 python

1 - 文件 > 设置 > 你的项目 > Python 解释器

2 - 点击右侧的设置图标,然后点击添加

3 - 点击 Virtualenv Environment 并选择位置

设置 virtualenv 后,您可以轻松使用 PyCharm 管理包

【讨论】:

  • ModuleNotFoundError: No module named 'C:\\Users\\Roshan\\AppData\\Local\\Programs\\Python\\Python37\\Scripts\\django-admin'
  • 我的 virtualenv 路径在我的主目录中。
  • ModuleNotFoundError: No module named 'C:\\Users\\Roshan\\AppData\\Local\\Programs\\Python\\Python37\\Scripts\\django-admin'
猜你喜欢
  • 2018-12-03
  • 2021-07-08
  • 1970-01-01
  • 1970-01-01
  • 2019-03-08
  • 2021-08-06
  • 2019-11-28
  • 2018-11-03
相关资源
最近更新 更多