2016-02-21 55 views
0

目前我正在試圖完成這裏找到Django的教程:https://docs.djangoproject.com/en/1.9/intro/tutorial01/皮普Django的版本不同於Python的

然而,當我嘗試運行python manage.py migrate我得到的錯誤Unknown command: 'migrate'。我查了一下,發現這意味着我正在使用不支持遷移的Django版本。所以我跑了python -c "import django; print(django.get_version())"看看Django Python使用的是什麼版本。原來是1.6.1。這沒有意義,但因爲當我做pip list我得到Django(1.9.2)。如果我查看我的settings.py文件,它甚至會說「使用Django 1.9.1生成'django-admin startproject'」。

有誰知道爲什麼Python使用不同於使用pip安裝的Django版本?

+1

你是執行命令在同一的virtualenv檢查版本,你在執行'pip'?你在使用virtualenvs嗎? – jsfan

回答

2

強烈建議您在虛擬環境中運行Django,因爲這會使管理Django變得更容易,而且您不想混淆系統上的python版本。

使用virtualenv -p /usr/bin/python3.5 <path/to/new/virtualenv/>將virtualenv與特定的python版本一起使用。

然後pip install Django得到最新版本的Django。

編輯:

不要忘了,當你使用Django設置和文件搞亂,你需要激活你的virtualenv在命令提示符。

類型 source myprojectenv/bin/activate和你的提示應該更改爲

(myprojectenv)[email protected]:~/myproject$

+0

我創建了一個virtualenv,我正在運行所有的東西,現在看起來可以工作。我仍然困惑,爲什麼當我從全局python安裝中使用django時不起作用。是否有可能Matej是正確的,並且針對不同的Python版本安裝了不同的Django版本? –

+0

@ChrisWillis這是可能的。我在Django使用python2.7的時候遇到了問題,但是我在服務器環境中安裝了python3.5的pip以及奇怪的錯誤。 Virtualenv使事情變得更容易。您可以使用'python -c「import sys; sys.path = sys.path [1:]; import django; print(django .__ path __)」'來查看django在系統中的位置(這將指示python版本在你的系統路徑。) – TheFlyingProgrammer

+0

@ChrisWillis簽出我的編輯了。有時我會嘗試運行「python manage.py runserver」或其他命令,並且我會遇到很多錯誤,因爲virtualenv未在我的命令提示符中激活。 – TheFlyingProgrammer

0

也許你使用不同版本的python python2和python3可以有不同版本的庫。嘗試運行python3 manage.py migrate