WINDOWS 同時安裝 python2 python3 后 pip 錯誤的解決方法
再之前同時安裝 python 后 只需把環(huán)境變量PATH 里面改為
PATH=C:\Python36-32\Scripts\;C:\Python36-32\;C:\Python27\;C:\Python27\Scripts
然后把python3安裝后的文件按照如下修改:
C:\Python36-32\Scripts\pip.exe 改為 C:\Python36-32\Scripts\pip3.exe
C:\Python36-32\python.exe 改為 C:\Python36-32\python3.exe
C:\Python36-32\pythonw.exe 改為 C:\Python36-32\pythonw3.exe
這樣就可以再CMD 命令行下直接使用 python python3 pip pip3 等命令
因為最近重裝系統(tǒng),安裝了python2 和python3的最新版本 python 2.7.13 和 python 3.6.0
按照上述修復(fù)該方法,python pip python3 命令工作正常,但 pip3 執(zhí)行時顯示下列錯誤:
Fatal error in launcher: Unable to create process using '"'
顯然是建立進程時沒有找到進程相關(guān)文件啊。想辦法吧。
發(fā)現(xiàn) C:\Python36-32\Scripts 目錄下有同樣圖標及KB數(shù)相同的文件文件名不一樣,調(diào)用的功能也不一樣的幾個exe文件:
easy_instal3l.exe
easy_install-3.6.exe
pip.exe
根據(jù)經(jīng)驗猜想這幾個EXE文件其實是同一個EXE文件加上不同的資源或者在調(diào)試破解領(lǐng)域里叫附加資源去執(zhí)行不同python 腳本,順手用7z打開證實了我的猜想
先去google一會找pip 這個exe的源代碼,找了一會兒沒找到,我就直接用IDA PRO F5 ,此EXE大概邏輯是找EXE最后多少字節(jié)以 特殊符號 分割開頭的一個字符串并建立進程附加參數(shù)并執(zhí)行。
用HEX編輯器打開 pip.exe 翻到最后部分

看紅色圈起來的部分,發(fā)現(xiàn)這里面是寫死了路徑的,應(yīng)該是python安裝時附加的這個字符串,OK,直接把
c:\python36-32\python.exe 改為 c:\python36-32\pytho3.exe 保存。
然后 復(fù)制 C:\Python36-32\python3.exe 改為 C:\Python36-32\pytho3.exe
你沒看錯,去掉了n,因為原來字符串python.exe 有10個字符,我們通常在修改EXE時為了工作正常不產(chǎn)生數(shù)據(jù)偏移之類的
錯誤要保證字符串的長度及位置,為了偷懶我直接改為 pytho3.exe 這樣可以工作正常。
下一步時找到這個pip.exe “殼”的代碼和 安裝程序什么是偶附加這個資源,看看能不能提一個bug修復(fù)下把他變成自動獲取當前exe路徑的上級路徑的python3的位置。
(顯然python3是我重命名的,這個思路不好)
相關(guān)資源參考:
https://github.com/pypa/setuptools/blob/master/msvc-build-launcher.cmd
https://github.com/pypa/setuptools/blob/master/launcher.c
https://www.python.org/dev/peps/pep-0397/
https://bitbucket.org/pypa/distlib/src/e4339220120d334fb9030303b8e919594acb829d/PC/?at=default
相關(guān)文章
Python RuntimeError: thread.__init__() not called解決方法
這篇文章主要介紹了Python RuntimeError: thread.__init__() not called解決方法,需要的朋友可以參考下2015-04-04
python?opencv實現(xiàn)灰度圖和彩色圖的互相轉(zhuǎn)換
這篇文章主要給大家介紹了關(guān)于python?opencv實現(xiàn)灰度圖和彩色圖的互相轉(zhuǎn)換,文中通過實例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-01-01
jupyter notebook讀取/導(dǎo)出文件/圖片實例
這篇文章主要介紹了jupyter notebook讀取/導(dǎo)出文件/圖片實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
python實現(xiàn)批量監(jiān)控網(wǎng)站
本文給大家分享的是一個非常實用的,python實現(xiàn)多網(wǎng)站的可用性監(jiān)控的腳本,并附上核心點解釋,有相同需求的小伙伴可以參考下2016-09-09
Python設(shè)計模式中的創(chuàng)建型工廠模式
這篇文章主要介紹了Python設(shè)計模式中的創(chuàng)建型工廠模式,工廠模式即Factory?Pattern,是提供創(chuàng)建對象的最佳方式,下文小編介紹Python工廠模式的相關(guān)資料,需要的朋友可以參考一下2022-02-02

