27

我正在使用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 站点包目录的符号链接。

4

8 回答 8

45

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

python -m pip install django

:) 完毕!

于 2017-10-30T12:58:42.317 回答
19

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

import sys     
print(sys.path)

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

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

于 2012-02-27T08:53:51.573 回答
16

在 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')
于 2012-02-27T09:08:05.307 回答
13

尝试

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)
于 2016-04-30T08:25:47.207 回答
11

尝试打印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
>>> 
于 2012-02-27T08:56:57.293 回答
2

django 在升级到 python 3.7 时丢失了

pip3 install django

解决了这个问题。

于 2020-08-07T15:10:19.513 回答
1

python3 -m django --version1

对我来说就是这样^

于 2021-03-21T22:34:23.827 回答
0

如果您使用环境使用:

$ ~/Documents/backend/environment/bin/python -m mypy ~/Documents/backend/src/file.py
于 2020-06-09T19:44:22.627 回答