同時安裝了Python2和Python3時的pip使用
在我電腦上同時安裝了Python2和Python3,當時按正常操作pip的使用預設是直接呼叫命令pip install + 庫名 的,我在只使用Python3時安裝request包時如下:
直接下載安裝,飛一般的感覺。
但是當我安裝了Python2後,與Python3共存,我預設輸入pip install 時,他給我明顯預設呼叫的是Python2的pip:
從下載的包名可以看到,pygame包給我下的版本是Python2.7的對應版本
於是百度得知,分別呼叫不同的Python版本的pip【包管理器】,可以使用如下指令
a.當你要在Python3安裝庫是可以這樣使用pip——>python3 -m pip install 庫名
b.當你要在Python2安裝庫是可以這樣使用pip——>全路徑名\python2 -m pip install 庫名 例如 C:\python27\python2 -m pip install pyflakes
也就是說,在我電腦上,我為區別Python2和3,因為我是先安裝的3,再安裝的2,預設3的程式名即Python,而2的我改成了Python2。
因此我呼叫pip包時應該對應,Python3的使用命令python -m pip install 庫名
Python2的使用命令python2 -m pip install 庫名
在你的電腦上因為要兼顧共存兩個版本,因此也會有當時安裝時所做的區別名稱,因此具體還是按你的電腦上的兩個版本的Python名來呼叫相應命令
另一種更加直觀和傻瓜的辦法
py -2 -m pip install XXXX//Python2
或者
py -3 -m pip install XXXX//Python3
接下來討論一種pip使用時的神奇情況,我在安裝pygame時,直接呼叫pip管理器下載安裝,本來可以享受飛一般的官方安裝體驗時,卻出現瞭如下錯誤:
無限迴圈出現以上錯誤,手動停止後開始分析原因。
在百度和谷歌上查詢了大量類似錯誤後,發現大多部落格都提到了同一個問題,並給出了類似的解決方法。即,“官方下載源如果太慢的話以下我們提供了幾個國內pip源,方便大家使用…”
這裡給出了幾個國內的pip源可以下載,但是為什麼正常的pip下載安裝就會出現錯誤呢?
但是有強迫症的自己無法容忍使用國內的源來進行下載安裝。
上面的截圖是有人在安裝selectivesearch這個包時遇到的問題,他的解決方法是用國內豆瓣網的pip源來下載安裝這個包,因此使用了命令:
【pip install selectivesearch】 【-i
上面這條命令的左半部分是正常的pip呼叫命令,之後的部分是選擇從國內的源進行下載,而不是預設官方的源。
無奈我只能從國外網站上下載了對應版本的需要的包的檔案pygame-1.9.4-cp36-cp36m-win32
然後使用本地安裝的方法安裝了pygame包
可以看到當時我用預設的pip指令安裝,他顯示下載的包和Python版本不對應,無法安裝,我查詢了自己的Python版本確實是32位的,才領悟到是pip命令衝突了,第三次輸入指令,將該本地包安裝到對應的Python3版本上。才正確安裝。
但是下方黃色字型提示,我的pip版本過低,是9.0.1的,請升級到最新的18.1,他甚至連命令都給你輸出來了,python -m pip install --upgrade pip,讓你直接複製下來安裝就好了,【Python真是貼心】 可是這裡明顯給的是官方更新源的指令,現在問題又回到了一開始,官方源我連結不上,就會產生很多的不方便,本來一個指令就能下載安裝好的事,非要找國內源,找國外本地包。。。。
上圖顯示我連更新pip的基本操作都做不到,更何況找一些想要的包下載了。。。這告訴我並不是自己的操作問題。
我一氣之下打開了VPN—翻---牆, 沒想到奇蹟發生了
一切操作pip操作行雲流水如絲般順滑的完成了下載安裝。所以結論是,pip官方源被牆掉了。掛個VPN就好了。
【上方黃色字型的意思是要求你使用管理員許可權進行命令,但是也能成功安裝,強迫症請移步【開始】選單點開管理員許可權開啟命令列視窗【cmd】】
最後提兩句小貼士,關於pip的使用方法都在pip --help指令中
裡面提供了很多有用的pip指令,如,檢視已安裝的包,pip list或pip freeze指令。
這張圖展示了我用pip list指令分別呼叫Python2和Python3的pip檢視每個版本的Python分別安裝了哪些包。
當然你也可以刪除包:呼叫指令pip uninstall +包名
之後會詢問你是否確認刪除,輸入y確認即可
更多有趣功能還請自行檢視pip --help中的內容