2015-06-21 18 views
0

我有python版本2.7.3,我想學習django,所以我在我的Ubuntu 12.0.4上安裝了django 1.8.2版本。我是否需要分別爲不同的python版本安裝django?

[email protected]:~/bin$ python 
Python 2.7.3 (default, Sep 26 2013, 20:08:41) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import django 
>>> django.VERSION 
(1, 8, 2, 'final', 0) 

然後我讀的是最好的辦法喲Django的工作是在Python版本工作3.3,所以我在我的系統,其中PY是符號鏈接指向/opt/python3.3/bin上安裝Python版本3.3.6 /python3.3

[email protected]:~/bin$ py 
Python 3.3.6 (default, Jun 21 2015, 16:13:35) 
[GCC 4.9.2] on linux 
Type "help", "copyright", "credits" or "license" for more information. 

當我嘗試和進口的Django在這裏,我得到錯誤

>>> import django 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
ImportError: No module named 'django 

我看到Django的安裝得到了我的Python 2.7目錄。

>>> import django 
>>> django 
<module 'django' from '/usr/local/lib/python2.7/dist-packages/django/__init__.pyc'> 

我該如何使用這個django與我的3.3.6版本。我的默認python版本是2.7.3 這裏有什麼可能的鍛鍊?

回答

2

正如一些評論說,你應該使用的virtualenv隔離的環境。你會這樣做:

1)確保你有virtualenv安裝。在Ubuntu上,例如,這將是包virtualenv

2)創建一個新的空白環境。你選擇這將是它的Python版本是這樣的:

virtualenv -p /usr/bin/python3.4 env 

3)創建一個文件夾env。激活新創建環境:

. env/bin/activate 

這所以現在更新您的路徑,當你從這個shell中運行pythonpip,他們會在你的virtualenv的上下文中執行。

4)更新的virtualenv(可選)

pip install -U pip 

5)安裝任何你需要的包。建議的方法是在項目的根目錄下有一個requirements.txt文件。你會這樣拉他們:

pip install -r myproject/requirements.txt 

就是這樣。照常使用pip命令。只要您使用virtualenv active,您的python命令將只能看到您明確安裝在其中的模塊。

6)不要忘記在每個新shell中重新運行. env/bin/activate。如果你認爲你可能會忘記,你可以添加到您的manage.py

import sys 
if __name__ == "__main__": 
    if not hasattr(sys, 'real_prefix'): 
     sys.stderr.write('Running outside of any virtualenv - did you forget to activate one?\n') 

有什麼好處?

  • 您對每個項目都有獨立的環境(無衝突)。
  • 您可以在不同的項目中使用相同模塊的不同版本。
  • 系統更新不會破壞您的項目。
  • 你不會污染你的系統與非託管文件。
  • 你永遠不會以root身份運行東西,這意味着既增加了隔離性,又可能在無需root權限的情況下運行你的項目。
  • 只要你保持你的requirements.txt是最新的(使用pip freeze),你可以在另一個系統上重建virtualenv,它會工作。

[編輯:使用requirements.txt]

這僅僅是一個擁有pip install規範,一個行的文件。它允許輕鬆地從頭開始重建virtualenv。您可以使用您當前的virtualenv生成它:

pip freeze > requirements.txt 

這樣的想法只是要記得重新運行此命令每次你改變你的環境(安裝,刪除或升級一些包)。

+0

謝謝你的回答。我能夠在此鏈接提供的布爾答案幫助下做到這一點http://askubuntu.com/questions/244544/how-do-i-install-python-3-3。但是你能否在這裏解釋更多有關requirements.txt的內容,我如何保持這個更新。 – Invictus

+1

編輯回答你的問題^^ – spectras

+0

非常感謝:) – Invictus

2

是的,每個Python版本都有自己的文件夾和已安裝的軟件包。您必須爲Python 3.3單獨安裝Django。對於默認情況下不可用的每個軟件包也是如此。

(如果你使用Python 3,爲什麼不去最新和最偉大的,3.4?)

+0

如何將django包添加到我的新版本的python中?默認情況下,我的版本是2.7.3,我有我的新python版本./opt/python3.3 ./opt/python3.3/bin/python3.3 截至目前我已添加py作爲一個軟鏈接指向/opt/python3.3/bin/python3.3 – Invictus

+0

你很可能有一個'pip3'命令,所以使用'pip3 install django'。如果沒有,請嘗試'sudo apt-get install pip3'。 – knbk

+1

也看看這個:http://virtualenvwrapper.readthedocs.org/en/latest/install.html#shell-startup-file使用虛擬環境可以讓你保留所有版本的django,並將第三方模塊與系統隔離東東。 –

相關問題