【发布时间】:2020-12-29 04:17:19
【问题描述】:
我正在使用带有 this 教程的 Django REST 框架构建 API。当我尝试测试python3 manage.py 时,我收到ModuleNotFoundError: No module named 'django' 错误。我一直在处理可能存在的一长串问题(重新安装 django,需要在根目录中添加 __init__.py 等),有人建议使用 pip3 list 检查我的模块列表。
这是我看到的:
Package Version
------------------- -------
asgiref 3.3.1
dj-database-url 0.5.0
Django 3.1.4
django-filter 2.4.0
django-heroku 0.3.1
djangorestframework 3.12.2
gunicorn 20.0.4
Django 大写是有原因的吗?这可能是它在manage.py 中找不到它的原因吗?如果是这样,我该如何解决?
这是我收到的完整错误消息,但它确实很笼统。异常是硬编码的:
Traceback (most recent call last):
File "manage.py", line 11, 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:
Traceback (most recent call last):
File "manage.py", line 22, in <module>
main()
File "manage.py", line 17, in main
) from exc
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?
【问题讨论】:
-
你在使用 virtualenv 吗?
django-admin --version的结果是什么? -
你读过这篇 SO 帖子吗,stackoverflow.com/questions/46210934/…\
-
分发包的名称(
Django)和导入包的名称(django)不一定要匹配。分发包是您pip-安装的东西。虽然导入包是您导入的东西。它们是两种不同的东西。 1个分发包可以包含多个导入包,名称不必匹配。--sinoroc.github.io/kb/python/packaging.html -
@JPG 我没有使用 virtualenv,根据您发送的 SO,我认为这是我的问题。不知道为什么,但我的教程从未提到使用虚拟环境。
django-admin --version给我3.1.4。 -
@JPG 我从来没有用过 virtualenv,所以对我来说都是全新的。有推荐的教程吗?我已经对一个项目非常深入,所以我希望能顺利进行。