导入错误:没有名为 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。您是否将它安装为鸡蛋? 除了PYTHONPATH
,sys.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 导入错误 - 没有名为 core.management 的模块
升级到 Django 1.7。导入错误:没有名为仪表板的模块