1. 程式人生 > >windows下多python版本下的一個pip錯誤

windows下多python版本下的一個pip錯誤

錯誤 如下

Fatal error in launcher: Unable to create process using '"'

原因分析
此錯誤主要是由於在裝了多個版本的python後,由於要能在統一系統中多個版本python相容,改變了pip所在版本的python的名稱所致。
具體展示
本人電腦中安裝的是python 3.5.2,Anaconda中python版本也為3.5.2,但是,由於系統環境變數配置中將python的環境變數放到了Anaconda的前面,每次在cmd中輸入python都會進入正常的python,而不是Anaconda。

C:\Users\Administrator
>python -V Python 3.5.2

通過將Anaconda中的python改為condapython,實現了在cmd中進入不同的python。

C:\Users\Administrator>condapython -V
Python 3.5.2 :: Anaconda 4.2.0 (64-bit)

但是,此舉也導致了一個問題,那就是pip工具(之前為了能呼叫不同的pip工具,已將Anaconda中pip改為condapip,以免被python中pip覆蓋)無法正常使用
C:\Users\Administrator>condapip -V
Fatal error in launcher: Unable to create process using ‘”’
將Anaconda中的condapython的名稱改回python之後

C:\Users\Administrator>condapip -V
pip 9.0.1 from d:\important software\anaconda3\lib\site-packages (python 3.5)

如果只是想修復此錯誤,將重新命名的python改回來即可,但是,這樣我便無法在cmd中通過python或者condapython之類的命令呼叫不同的python,所以,python的名字還是要改的,那麼,改名之後如何解決pip的報錯呢,上網查了一些資料,有些說環境變數的配置有問題,還有些建議更新pip工具,通過前面的分析我們可以得知,這些答案都是有問題的,其真正的原因出自python名稱的改變。
解決方案在這裡。。。。。。。。
本人慾將Anaconda中的python改為condapython以實現cmd中呼叫不同python,改名後,修改Anaconda中的pip工具(用二進位制編輯器),如下圖所示
用010檢視pip二進位制檔案


通過用將pip工具以二進位制檔案形式開啟,我們發現問題所在,原來pip工具在執行過程中呼叫了python程式,這就好辦了,我們只需要將pip工具中這個路徑改成相應的改名後python的路徑就行,如下圖所示
改後pip
修改pip的二進位制檔案後,再次在cmd中執行condapip -V

C:\Users\Administrator>condapip -V
pip 9.0.1 from d:\important software\anaconda3\lib\site-packages (python 3.5)

OK,問題解決了,不同版本之間的python問題修改方法與此相同。。。