2013-03-28 289 views
27

我試圖安裝Django 1.4.3,但是當我執行點子安裝,PIP一直安裝Django的1.5版本,而不是1.4.3PIP安裝:如何強制特定的軟件包的版本

sudo pip install -I Django==1.4.3

它返回:

Downloading/unpacking Django==1.4.3 
    Running setup.py egg_info for package Django 

    warning: no previously-included files matching '__pycache__' found under directory '*' 
    warning: no previously-included files matching '*.py[co]' found under directory '*' 
=== >>>> Requested Django==1.4.3, but installing version 1.5 <<<< ==== 
Installing collected packages: Django 
    Found existing installation: Django 1.5 
    Uninstalling Django: 
     Successfully uninstalled Django 
    Running setup.py install for Django 

    warning: no previously-included files matching '__pycache__' found under directory '*' 
    warning: no previously-included files matching '*.py[co]' found under directory '*' 
    changing mode of /usr/local/bin/django-admin.py to 755 
Successfully installed Django 
Cleaning up... 

,但如果我執行畫中畫凍結,它不斷顯示

Django的== 1.5

我在做什麼錯?

謝謝

+0

愚蠢的問題,但你有沒有試過卸載Django的所有版本,然後運行你的命令? – NT3RP

+0

是的,我做了,並沒有工作。我也可以選擇下載軟件包並手動安裝它,但我想知道是否有一個選項在點子,以避免這種行爲,並強制1.4.3版本 – kothvandir

+0

你只試過'pip install Django == 1.4.3 ' – catherine

回答

17

這可能/應該/可以通過PIP清理build目錄Django的幫助。 有這個錯誤,因爲1.1版see here for details

你可以從這裏開始檢查這些文件夾,如果你在OS X或類Unix系統:

~/.pip 
/tmp/pip-build-root (or pip-build-$USER, if you aren't running pip as root). 

這是如果你還沒有在安裝第一個Django版本時指定一個新的生成文件夾。

祝你好運!

+0

它不起作用,既沒有-v標誌也沒有設置「Django <= 1.5」或使用「Django == 1.4.3」。它輸出沒有錯誤,1.5版本正確安裝,但一直說Requested Django == 1.4.3,但安裝版本1.5。 – kothvandir

+0

查看更新的答案 –

+0

我很確定-V標誌僅用於輸出當前安裝的pip版本,與'pip install'無關。 – aiham

8

limelight says一樣,您應該清空緩存並構建目錄,或者使用--download-cache和標誌傳入臨時清理位置。

$ pip help install 
[...] 
--download-cache <dir>  Cache downloaded packages in <dir>. 
-b, --build <dir>   Directory to unpack packages into and build in. The default in a virtualenv is "<venv path>/build". The default for global installs is 
          "<OS temp dir>/pip-build-<username>". 

我想警告任何讀者不要使用sudo pip install來安裝Django。它在系統範圍內安裝Django。並且更改系統範圍的版本可能會破壞依賴於它的系統包。例如,Ubuntu MAAS和Cobbler依賴於系統django包。這些通常是您不想破的服務。

如果您需要與系統軟件包不同的版本,請使用virtualenv將您的依賴關係與系統隔離。

OP似乎在OSX上,我不知道任何服務器級的Mac Django,但這可能會改變。考慮安裝Python軟件包sudo,以改變使用python 3的系統安裝的python;它可能現在工作,但有一些撲熱息痛股票,因爲你有一些頭痛。

+0

與cygwin的窗戶上,您需要上述兩個標誌來讓pip忽略緩存。這是一個奇怪的設計 - 人們會認爲添加-U和強制版本意味着我真的想要這個版本,而不是隨機的版本在我的緩存中。 – fastmultiplication

4

檢查您的本地緩存並刪除它可以幫助。我hava安裝了pymongo == 2.5.2。要安裝pymongo == 2.4.1,我刪除/tmp/pip-build-root/pymongo中的緩存。然後成功安裝pymongo 2.4.1。