解決"pip Fatal error in launcher: Unable to create process using ... "的錯誤
前言
我的本機上已經有了python的環境了,也裝了pycharm編輯器(IDE)。
當時我python2和3版本都裝了的,但是現在我忘記了。
所以我需要重新熟悉一下,並且安裝anaconda這個IDE。
摘要
本來是想先熟悉一下開發環境,結果發現並解決了一個問題,所以這裡就單獨拿出來討論、記錄一下:
本文旨在介紹如何在win 10上進行python 2.7 版本和 3.6版本的切換,並解決"pip Fatal error in launcher: Unable to create process using … "的錯誤(一般是遷移python3.6版本的根目錄導致的)。
熟悉之前的開發環境
1)安裝在本機的pycharm資訊
pycharm資訊
沒想到pycharm裡面竟然還有jvm,jdk這種java開發相關的資訊,我還以為只能用來開發python程式。
2)安裝在本機的python資訊
python資訊
看來可以自由在本機中切換python版本,具體參考:[4]
我現在再看下我的環境變數,準備把我的python 3.6 移一下位置。
問:為什麼要移動python3.6 的安裝根目錄呢
-
我很好奇,移動了這種軟體的根目錄之後,是不是隻需要改變環境變數就可以正常執行。
-
我覺得python3.6的根目錄太複雜了,如下圖,這麼長,再看看python2.7,這麼短,所以我想都移到C盤根目錄下,以後切換python版本的時候也方便些。
python環境變數
把python3.6 移到c盤根目錄下,對應的,改變環境變數:
修改python環境變數(遷移python3根目錄)
現在試著把C:\Python36\python3.exe改成python.exe
對應的,把C:\Python27\python.exe改成python2.exe
再win + R -> cmd -> python --version
看一下python版本是不是變成了3.6.
然而,有出錯資訊:
轉換版本後的出錯資訊
原因:我在修改環境變數之後,這個環境變數的改變並沒有生效.
解決方案:現在我登出一下電腦。然後重新使用pip list命令。
讓人遺憾/失望的是,這個並沒有生效。還是一樣的錯誤:fatal error。
這時,看到一個網頁:
於是,我準備修改C:\Python36\Scripts下面的pip.exe和pip3.exe,然而我電腦上沒有notepad,只有sublime text 3.這時候我強行用sublime開啟,發現沒有搜尋到關鍵字C:
,自然也沒修改pip exe中寫入的路徑啦。
急中生智,經過一番探索,我發現必須用sublime的utf-8模式來開啟,具體操作:左上角工具欄 file -> reopen with encoding -> utf-8
,然後選中pip.exe即可:
sublime可以開啟pip.exe並修改。
這一番嘗試正好解決了[2]的問題:怎麼用sublime開啟並修改pip.exe?
此外,科普一下:為什麼要修改pip.exe: 因為python3.6在安裝的時候有個強制安裝目錄,我們一般都是預設那個目錄安裝(好像是user/local/program這種目錄,具體忘了),這時候pip.exe和pip3.exe檔案裡面的路徑就是這個目錄了,我們如果想遷移這個python3的安裝目錄,就必須修改pip檔案,才能夠正常執行pip list等pip相關的命令。
就在我修改完成之後,即把上圖中的C:\XXX 修改成C:\Python36\python.exe之後,出現了另外一種錯誤:
新的錯誤已經出現
我一開始以為是sublime的問題,為此我下了notepad(很簡單,https://notepad-plus-plus.org/download/v7.5.8.html 直接下 直接下載就行了),還看了[3],參考該文章進行修改,然而還是報錯。之前的pip檔案又沒有備份,很扎心,以為自己要重新下載python3.6版本了。
所以到系統設定中去解除安裝,結果提示無法解除安裝?python3.6 is not installed in my computer!
扎心,所以我點選了一下修復
按鈕:
點選修改就可以看到repair(修復)這一個按鈕 修復過後,我發現可以解除安裝了,然而!!!我趕緊撤回,cancel,(因為我想確認一下pip的問題是不是也修復了),果不其然,pip可以正常使用了,真是神了。
所以,結論是:通過python3.6版本的修復功能,可以對pip的問題(即pip Fatal error in launcher: Unable to create process using ...)進行修復。
repair按鈕如下圖:
python3.6版本的修復功能
真的很神奇。但確實有用。
anaconda研究
這個放在下一篇文章吧,我很好奇anaconda是不是不需要提前安裝python環境,直接整合在內部安裝包裡面。