2012-02-27 92 views
11

我正在使用centos linux。導入錯誤:沒有名爲django的模塊

我有python 2.6與Django,現在我升級到Python 2.7。
Python 2.6位於/usr/lib/python2.6。
Python 2.7位於/usr/local/lib/python2.7。
他們都有站點包目錄,他們都包含django 1.2。

如果我運行python我得到2.7版本。
我的問題是,如果嘗試導入Django的我得到

ImportError: No module named django

我不知道我的PYTHONPATH定義,其中,如果這是我需要改變。 有人嗎?

我結束了2.6站點包目錄的符號鏈接。

回答

11

要檢查你的路徑,可以使用下面的代碼:

import sys 
print sys.path 

如果您已經知道安裝的Django地方,它應該很容易測試,如果所需的目錄與directory in sys.path您的路徑。

關於您的PYTHONPATH的定義位置。請注意,這是一個環境變量,因此您可以檢查其值(如果已定義):echo $PYTHONPATH

+2

的direcroty不在路徑,但父direcotory - 「/usr/local/lib/python2.7/site-packages」是路徑,如何添加一個目錄來這條道路? – yossi 2012-02-27 08:58:27

+0

PYTHONPATH未定義,因此sys.path中的所有目錄都定義在哪裏? – yossi 2012-02-27 09:01:06

+1

在這種情況下,python應該能夠找到django。你有沒有安裝它可能是一個雞蛋? – jcollado 2012-02-27 09:05:34

8

嘗試打印sys.path以查看您的路徑中有什麼。 Django需要在列出的其中一個dirs中。在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 
>>> 
+1

如何添加一個目錄到這個列表?如果我使用.append不presist – yossi 2012-02-27 09:11:16

+2

見http://docs.python.org/tutorial/modules.html#the-module-search-path – 2012-02-27 09:14:43

12

在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 

我假設你是直接從在命令行中運行此。如果你運行它作爲一個阿帕奇WSGI模塊,你可以從你的WSGI文件添加到您的SYSPATH爲:

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

我認爲分隔應該是一個「:」而不是「; 「 – 2014-10-27 13:04:43

+0

@YannSagon謝謝 - 修正上面。分號將用於窗口,但這是爲了使用冒號的centos。 – 2014-10-30 14:01:53

8

嘗試

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

我有同樣的錯誤,這解決了我的問題

python -m pip install django

:)完成!

+0

這工作對我來說 - 謹慎地闡述運行這個差異,而不是'pip install django'? – 2018-02-01 13:01:10

相關問題