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

时间:2012-02-27 08:48:16

标签: python django centos pythonpath

我正在使用centos linux。

我有django的python 2.6,现在我升级到了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我得到

  

ImportError:没有名为django的模块

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

我最终建立了一个指向2.6 site-packages目录的符号链接。

8 个答案:

答案 0 :(得分:17)

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

python -m pip install django

:)完成!

答案 1 :(得分:14)

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

import sys     
print(sys.path)

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

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

答案 2 :(得分:13)

在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')

答案 3 :(得分:10)

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)

答案 4 :(得分:9)

尝试打印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
>>> 

答案 5 :(得分:1)

django在升级到python 3.7时失踪了

pip3 install django

解决了这个问题。

答案 6 :(得分:0)

如果您正在使用环境,请使用:

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

答案 7 :(得分:0)

gh-pages

对我来说就是这样^