2012-12-23 143 views
82

嘗試從命令行運行Django時出現以下錯誤。Django - 「no module named django.core.management」

File manage.py, line 8, in <module> 
     from django.core.management import execute_from_command_line 
ImportError: No module named django.core.management 

有關如何解決此問題的任何想法?

+0

你究竟想要運行什麼,什麼版本的Python,Django的版本等......? –

+0

我的本地主機的版本是Python 2.6.6和1.4.3 Dyango。 Python服務器是2.6.6和Dyango無法檢查是否知道如何檢查? – Krasimir

回答

46

這聽起來像你沒有安裝django。你應該檢查這個命令產生的目錄:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()" 

看看你是否有django包在那裏。

如果站點包內沒有django文件夾,那麼您沒有安裝django(至少對於該版本的python)。

您可能安裝了多個版本的python,並且django在另一個版本中。如果您輸入python然後按TAB,則可以找出python的所有版本。這裏是我擁有的所有不同的python。

$python 
python   python2-config python2.6   python2.7-config pythonw2.5 
python-config  python2.5   python2.6-config pythonw   pythonw2.6 
python2   python2.5-config python2.7   pythonw2   pythonw2.7 

可以爲蟒蛇的每個版本做上述命令,並期待每個站點包目錄裏面看看其中是否已經安裝的Django。例如:

python2.5 -c "from distutils.sysconfig import get_python_lib; print get_python_lib()" 
python2.6 -c "from distutils.sysconfig import get_python_lib; print get_python_lib()" 

如果你碰巧發現裏面說python2.6的,嘗試用

python2.6 manage.py ... 
+0

這是在命令「/usr/lib/python2.6/site-packages」 – Krasimir

+0

後面的內容進入文件夾「/usr/lib/python2.6/site-packages」,看看是否有名爲django的文件夾內。 – RaviU

+0

還有其他不是Django:D – Krasimir

-1

文件和目錄的所有權相沖突原來的命令將在這裏產生問題的Django。確保項目下目錄和文件的所有權屬於當前用戶。通過「第一個Django應用程序」樣品運行時,這解決了這個問題對我來說::(您可以使用帶有-R選項chown命令更改。)嘗試重新運行命令

python manage.py startapp polls 
27

我得到了同樣的錯誤我固定它以這種方式:

我不得不使用下面的命令

source python2.7/bin/activate 
2

,如果你改變你的Python項目的目錄結構也會發生這種情況(我這樣做是爲了激活我的虛擬環境,然後對行爲變化感到困惑)。如果你這樣做,你需要在你的/ bin/activate文件中改變一行。所以,說你的項目是在

/User/me/CodeProjects/coolApp/ 

和您的激活文件是在

/User/me/CodeProjects/coolApp/venv/bin/activate 

,當你設置你的項目,那麼你就改變了你的項目

/User/me/CodeProjects/v1-coolApp/ 

什麼的。那麼你就需要在你的manage.py第一復活

16

最大的可能是之前開

/User/me/CodeProjects/v1-coolApp/venv/bin/activate 

找到行的地方說

VIRTUAL_ENV="/User/me/CodeProjects/coolApp" 
export VIRTUAL_ENV 

,並更改爲

VIRTUAL_ENV="/User/me/CodeProjects/v1-coolApp" 

行以!/usr/bin/python開頭,這意味着您正在使用sys而不是虛擬環境中的一個。

所以用

~/projectpath/venv/bin/python 

更換

/usr/bin/python 

,你應該是不錯的。

+1

這對我來說工作得很好! –

10

您是否在虛擬環境中使用虛擬包裝?你在Mac上嗎?

如果是這樣試試這個:

輸入以下到您的命令行啓動虛擬環境,然後解決它

1)

source virtualenvwrapper.sh 

source /usr/local/bin/virtualenvwrapper.sh 

2.)

workon [environment name] 

注意(從一個新手) - 不要把括號環境​​名

+0

我花了兩秒鐘才知道virtualenv沒有啓用,但這是我的問題...所以upvote,因爲我打穀歌谷歌按鈕一次,並沒有讀取任何出現。 – RobotHumans

4

好了,所以它是這樣的:

您已經創建了一個虛擬的環境和Django的模塊只屬於那個環境。由於virtualenv將自己與其他事物隔離開來,所以你看到了這一點。

通過這個尋求進一步的幫助:

http://www.swegler.com/becky/blog/2011/08/27/python-django-mysql-on-windows-7-part-i-getting-started/

1.You可以切換到您的虛擬環境的存儲目錄,然後運行Django的模塊。

2.Alternatively您可以通過運行PIP或使用PIP的easy_install

司令部在全球範圍安裝Django到您的python->站點包:PIP安裝Django

然後做到這一點:

進口django print(django.get_version())(取決於你使用的是哪個版本的python。這適用於python 3+系列)

然後你可以運行這個:python manage。py runserver並通過鍵入localhost:8000來檢查您的Web瀏覽器,您應該看到django powered頁面。

希望這會有所幫助。

12

好吧,我今天在安裝virtualenv和django後面臨同樣的錯誤。對我來說,我曾經使用sudo(sudo pip install django)來安裝django,並且我試圖運行manage.py runserver沒有sudo。我只是添加了sudo,它工作。 :)

+0

保存我的日子(Y) –

3

如果這有助於其他人...我有這個問題,因爲我的virtualenv默認爲python2.7,而我在使用Ubuntu時使用Python3調用Django。

檢查的Python我的virtualenv使用:

$ which python3 
>> /usr/bin/python3 

創造了指定python3新的virtualenv(使用的virtualenv包裝https://virtualenvwrapper.readthedocs.org/en/latest/):

$ mkvirtualenv --python=/usr/bin/python3 ENV_NAME 

Python路徑現在應該指向的virtualenv蟒蛇:

$ which python3 
>> /home/user/.virtualenvs/ENV_NAME/bin/python3 
2

就我而言,我使用的是Ubuntu 。問題可能是我沒有像普通用戶那樣寫入該文件夾的權限。您可以在命令前簡單添加sudo,它應該完美地工作。在我的情況下sudo python manage.py syncdb

-1

我得到了同樣的問題試圖使用python manage.py runserver。在我的情況下,我只是使用sudo su。使用終端作爲根,並再次嘗試一部分工作。所以我使用python manage.py migrate命令,它修復它。

1

有同樣的問題.run命令'python manage.py migrate'作爲根。正常工作與根訪問權限(sudo的蟒蛇manage.py遷移)

+1

這是一種治療症狀不是原因。 如果sudo工作,它可能是一個權限問題。 – evandentremont

4

我有在運行命令 -

python manage.py startapp < app_name >

但我的問題是,我是運行命令了虛擬環境的同樣的問題所以只需先激活你的虛擬環境並再次運行命令 -

30
sudo pip install django --upgrade 

爲我做了詭計。

+4

你的答案適合我,所以我給它一個upvote。然而,僅僅你的答案還不夠,因爲當我運行'sudo pip install django --upgrade'時,它給了我一個新的錯誤:'沒有名爲psycopg2的模塊。所以,我運行'sudo pip install psycopg2 --upgrade',它實現了訣竅。 –

+2

原來我沒有安裝django ...儘管我之前在機器上使用過它。奇怪的。 – James111

+0

'--upgrade'爲我工作,感謝一噸。 – WEshruth

1

我有同樣的問題,我得到這個消息的原因是因爲我做「manage.py runserver」,而做「python manage.py runserver」修復它。

+1

請注意,如果使用Python 3,它需要是「python3 manage.py runserver」。否則,導入錯誤仍然存​​在。 – rbaleksandar

+0

我做了manage.py運行服務器,它的工作原理! – alvaro562003

1

我的情況我在mac上使用pyCharm 5。我也有這個問題,在運行此命令後,我的問題解決了

sudo pip install django --upgrade 
2

我有同樣的問題,下面的工作不錯,你應該在你的項目中導航主文件夾不是類型:

source bin/activate 
+0

...然後呢? – IIllIIll

+0

比: 'python manage.py runserver' – GoldFish

5

這當您的計算機上未安裝django時會發生問題。當沒有安裝django這意味着django.core.management模塊也沒有安裝。所以它沒有找到這個模塊,它給出了錯誤。
爲了解決這個問題,我們應該使用pip來安裝django。打開COMAND線CMD(在Windows上)和類型

pip install django 

此命令將在您的計算機安裝Django。如果你沒有安裝點子。你應該安裝點子。 Here how to install pip on windows

0

你必須選擇你的第一個項目在運行服務器之前,鍵入此 workon your_project_name 然後 python manage.py runserver

3

我遇到同樣的事情,這是我做的。

首先我的

pip install -r requirements.txt

安裝不上我的活動環境。所以我所做的就是激活我的環境,然後再次運行

pip install -r requirements.txt

0

,您可以嘗試像這樣:python3 manage.py migrate(讓河畔是在src/目錄)

您也可以用pip install -r requirements.txt試圖(讓河畔你看到requirements.txt文件時,你的遷移

如果畢竟它仍然無法正常工作後鍵入ls嘗試pip install django

希望它可以幫助