2016-09-20 48 views
1

我安裝了Debian OS和Python 2.7版本。但我有一個關於包six的奇怪問題。我想使用1.10版本。pip和OS的軟件包版本有何區別?

我已經安裝了六臺1.10通過PIP:

$ pip list 
... 
six (1.10.0) 

但是當我運行下面的腳本

python -c "import six; print(six.__version__)" 

它說:1.8.0

的原因是,veriosn安裝在操作系統是不同的:

$ sudo apt-cache policy python-six 
python-six: 
Installed: 1.8.0-1 
Candidate: 1.8.0-1 
Version table: 
    1.9.0-3~bpo8+1 0 
     100 http://172.24.70.103:9999/jessie-backports/ jessie-backports/main amd64 Packages 
*** 1.8.0-1 0 
    500 ftp://172.24.70.103/mirror/jessie-debian/ jessie/main amd64 Packages 
    500 http://172.24.70.103:9999/jessie-debian/ jessie/main amd64 Packages 
    100 /var/lib/dpkg/status 

如何強制python使用通過pip安裝的軟件包?

+1

我也在運行Debian Jessie並安裝了'six-1.10.0',但是我沒有看到你得到的行爲。 pkg_resources import Environment中的'python -c「的輸出是什麼?print(Environment()['six'])」'? – birryree

+1

這個包是用pip安裝的嗎?使用'--user'標誌還是使用'/ usr/local'? – languitar

+0

@birryree [six 1.10.0(/usr/local/lib/python2.7/dist-packages)] – Lecko

回答

1

您可以使用virtualenv

pip install virtualenv 

cd project_folder 
virtualenv venv 

virtualenv venv將創建在當前目錄將包含Python的可執行文件的文件夾,並且您可以使用安裝其他程序包的點子庫的副本。虛擬環境的名稱(在這種情況下,它是venv)可以是任何東西;省略名稱會將文件放置在當前目錄中。

設置您安裝使用PIP所希望的Python解釋器

virtualenv -p /usr/bin/python2.7 venv 

激活環境

source venv/bin/activate 

從現在起,任何包將被放置在venv文件夾,從全球孤立 Python安裝。

pip install six 

現在你運行代碼。當你完成simpliy取消venv

deactivate 

the original resources見。

+1

我幾乎從不推薦'virtualenv'。 'virtualenvwrapper'是非常乾淨的,在我看來,它有一個更簡單的入口點。 – erip

相關問題