2016-03-30 31 views
1

在os上有pip的奇怪問題。據我所知(並快速查看我的.bash_history似乎證實)我沒有對我的配置做任何最近的更改。唉,pip命令似乎突然使用了不同於以前版本的python。到目前爲止,我使用命令pip來管理我的python2庫和pip3來由python3庫進行管理。突然之間,任何運行pip install的嘗試都會失敗,並在打印語句周圍缺少括號。Pip突然使用錯誤版本的Python

這裏是我試圖找出問題的幾個命令的結果:

which pip > /usr/local/bin/pip 

which pip3 > /usr/local/bin/pip3 

which python > /usr/local/bin/python 

python version > Python 2.7.11 

pip --version > pip 8.1.1 from /usr/local/lib/python3.5/site-packages (python 3.5) 

所以,出於某種原因,PIP命令似乎從PyPi2數據庫,但現在在python3運行?任何想法如何解決這一問題?

+0

任何其他程序(如安裝腳本)預先給你的'.bashrc'或鏈接的點到pip3的東西? – ChrisP

+0

你正在運行什麼版本的OSX?你從哪裏得到那個Python?家釀?你確定你沒有更新? – daveydave400

+0

這是可能的,但我沒有看到.bash_profile中的任何內容(並且沒有.bashrc)我每天運行brew更新和brew升級。 OS X版本是10.11.4 – jcmiller11

回答

2

嘗試通過在終端中運行以下命令來設置別名,

alias pip="/usr/local/bin/pip" 
alias pip2="/usr/local/bin/pip" 
alias pip3="/usr/local/bin/pip3" 

如果問題得以解決,那麼你需要添加別名在bash的個人資料。 查看How do I create a Bash alias?瞭解更多信息。

或者,您可以選擇使用python2 get-pip.pypython3 get-pip.py get-pip.py可以在這裏下載https://bootstrap.pypa.io/get-pip.py

+0

他們的問題是'/ usr/local/bin/pip'現在已經連接到了pip3,所以我認爲你的解決方案不會起作用。 – daveydave400

+0

然後按照答案的第二部分的建議,他需要重新安裝點子。 –

+0

重新安裝pip是否需要我重新安裝所有使用pip安裝的庫? – jcmiller11

0

打開畫中畫可執行文件重新安裝PIP:

vi /usr/local/bin/pip 

你會發現在一個家當線頂部可能會指向錯誤的Python(我也曾這樣做過)。

指向了Python你想要的:

#!/usr/local/bin/python2.7 
4

我有多個版本的Python,因此多個PIP版本上運行。

但是,每次更新pip時,都會將標準pip命令替換爲您更新的版本。因此即使pip3 install --upgrade pip也會在您的系統中放入/usr/local/bin/pip,搞亂了Python 2的版本。

相反,我跑PIP作爲一個(可執行文件)模塊:

python3 -m pip search <package> 

python2 -m pip search <package> 

甚至

python3.5 -m pip search <package> 

這保證了您的pip版本總是匹配的Python你想使用它的版本。鍵入的時間稍長一點,但我更喜歡它的明確性(我猜,它遵循Python的禪宗)。

注意更新PIP:

python3.5 -m pip install --upgrade pip 

仍將在/usr/local/bin/pip安裝的Python 3.5版本,但我只是忽略了。請注意直接執行pip的(shell)腳本。