导入错误:没有名为 django 的模块

Posted

技术标签:

【中文标题】导入错误:没有名为 django 的模块【英文标题】:Import Error: No module named django 【发布时间】:2012-03-16 18:14:49 【问题描述】:

我正在使用centos linux。

我有 python 2.6 和 django,现在我升级到 python 2.7。 Python 2.6 位于 /usr/lib/python2.6。 Python 2.7 位于 /usr/local/lib/python2.7。 它们都有 site-packages 目录,并且都包含 django 1.2。

如果我运行 python,我会得到 2.7 版本。 我的问题是,如果尝试导入 django 我会得到 ​​p>

ImportError: 没有名为 django 的模块

我不确定我的 PYTHONPATH 是在哪里定义的,如果这是我需要更改的。 任何人 ?

我最终创建了一个指向 2.6 站点包目录的符号链接。

【问题讨论】:

【参考方案1】:

要检查您的路径,您可以使用以下代码:

import sys     
print(sys.path)

如果您已经知道 django 的安装位置,那么使用 directory in sys.path 测试所需目录是否在您的路径中应该很容易。

关于 PYTHONPATH 的定义位置,请注意它是一个环境变量,因此您可以使用以下命令检查其值(如果已定义):echo $PYTHONPATH

【讨论】:

目录不在路径中,但父目录 - '/usr/local/lib/python2.7/site-packages' 在路径中,如何将目录添加到该路径? PYTHONPATH 未定义,那么 sys.path 中的所有目录在哪里定义? 在这种情况下,python应该能够找到django。您是否将它安装为鸡蛋? 除了PYTHONPATHsys.path 的内容使用取决于安装的值填充。 Related question.【参考方案2】:

尝试打印sys.path 以查看路径中的内容。 Django 需要在列出的目录之一中。 Windows 上的示例:

>>> import sys
>>> for p in sys.path: print p

C:\Python27\Lib\idlelib
C:\Windows\system32\python27.zip
C:\Python27\DLLs
C:\Python27\lib
C:\Python27\lib\plat-win
C:\Python27\lib\lib-tk
C:\Python27
C:\Python27\lib\site-packages
>>> 

【讨论】:

如何将目录添加到此列表中?如果我使用 .append 它不会 presist【参考方案3】:

在 linux 下,您可以在 .profile 或 .bashrc 中设置 PYTHONPATH 环境变量。您可以直接从终端编辑它,方法是切换到您的主目录 (cd ~),然后编辑文件 (nano .bashrc),或者使用 gtkedit 或 vim 或其他任何方式打开文件,然后添加:

PYTHONPATH=/usr/local/lib/python2.7/site-packages:/another/path/etc

如果您想在编辑个人资料之前对此进行测试,您可以从终端将其导出为:

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

我假设您是直接从命令行运行的。如果您在 apache 中将其作为 wsgi 模块运行,则可以将其从 wsgi 文件添加到您的 syspath,如下所示:

import sys
sys.path.append('/usr/local/lib/python2.7/site-packages')

【讨论】:

我认为分隔符应该是“:”而不是“;” @YannSagon 谢谢 - 上面已修复。分号用于 windows,但这是用于 centos,它将使用冒号。【参考方案4】:

试试

pip freeze

此命令显示您的系统中安装了哪些软件包 然后以root权限运行

pip install django

然后使用命令创建一个新项目

django-admin.py startproject mysite

然后开始你的项目

cd path/to/mysite
./manage.py runserver 

在文件 wsgi.py 中添加这行

import os
import sys
DJANGO_PATH =  os.path.join(os.path.abspath(os.path.dirname(__file__)), '..')
sys.path.append(DJANGO_PATH)

【讨论】:

【参考方案5】:

我遇到了同样的错误,这解决了我的问题

python -m pip install django

:) 完成!

【讨论】:

这对我有用 - 请详细说明运行它的区别,而不是 pip install django? 这是正确答案,你帮了我。谢谢。 我这样做了,它说要求已经满足。在我更改了 django 文件夹的位置后,我得到了 ModuleNotFoundError: No module named 'address'【参考方案6】:

如果您使用的是环境使用:

$ ~/Documents/backend/environment/bin/python -m mypy ~/Documents/backend/src/file.py

【讨论】:

【参考方案7】:

django 在升级到 python 3.7 时丢失了

pip3 install django

解决了问题。

【讨论】:

【参考方案8】:

python3 -m django --version1

对我来说就是这样^

【讨论】:

以上是关于导入错误:没有名为 django 的模块的主要内容,如果未能解决你的问题,请参考以下文章

导入错误:没有名为 django 的模块 - 用于特定项目

django 导入错误 - 没有名为 core.management 的模块

视图中的 Django 导入错误 - 没有名为“x”的模块

升级到 Django 1.7。导入错误:没有名为仪表板的模块

Django + uwsgi + nginx。导入错误:没有名为py的模块

Django 1.8 和 Rest Framework 3.7 的“导入错误:没有名为 urls 的模块”