一、pip安裝出錯類型
1.1 pip版本過舊導致不能安裝
報錯提示:
You are using pip version 9.0.3, however version 10.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' comm
and.
可通過以下命令升級pip
python -m pip install --upgrade pip
1.2 官方的PyPi連接超時
如果是timeout類形錯誤,那重點懷疑網絡問題,可能是官方的PyPi太慢導致。
這類錯誤可通過在pip.ini中index-url指定為使用本地源進行處理。我這里以清華源為例,具體操作步驟看下邊第三大點。
1.3 HTTPS證書問題
現在很多網站都換成了HTTPS,python驗證證書沒通過時就會拒絕使用PyPi源,通常報錯如下:
Could not fetch URL https://pypi.tuna.tsinghua.edu.cn/simple/gg/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.tuna.tsin ghua.edu.cn', port=443): Max retries exceeded with url: /simple/numpy/ (Caused by S SLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:726)'),)) - skipping
這類錯誤可通過在pip.ini中添加trusted-host進行處理。我這里以信任清華源為例,具體操作步驟看下邊第二大點。
1.4 缺少VC環境依賴
這類錯誤處理,一是安裝vc環境不過到現在我還不是很明白要裝哪個文件,更推薦的做法是使用conda安裝第三方庫,具體操作參見“PyCharm+Miniconda3安裝配置教程” 第二大點查看如何安裝conda及參看3.2.2節看如何用conda安裝第三方庫
通常報錯如下:
“distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.0 is required”
“Command "python setup.py egg_info" failed with error code 1 in C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-6fjrrgj5\cffi\”
20191212更新:
既然說缺少Microsoft Visual C++ 14.0 Build Tools那我們直接給他裝上。(需要生成工具的原因,猜測是有些python庫並不是單純的python文件,還有c語言寫的需要編譯成exe等可執行文件)
visual studio installer下載地址:https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&rel=16#
兩個本質上是一樣的,而我們要裝的都是一個,即”Microsoft Visual C++ 14.0 Build Tools“(VS中文名翻譯成生成工具)。
不管是vs 2015還是vs 2017還vs 2019,用的都是14.x版本只是小版本不一樣,我們裝最新的即可,比如我這里直接裝VS2019的。
由於VS無敵的大,為了避免C盤耗費過多建議修改安裝地址。可以只勾選安裝生成工具,但我這為了方便裝了VS能用於編寫C++就不取消色選其他組件了。但不管怎么樣VS核心編緝器都是必須安裝的,大概是微軟為了避免有些小白想裝VS最終裝了一堆組件編緝器卻沒見到。
二、查看當前軟件源等配置
2.1 查看當前使用的軟件源
可以使用以下命令查看當前使用的是哪個軟件源。(注意install和search使用的軟件源是不一樣的,后邊第三大節我們修改index-url也只對install起作用。至於為什么要不一樣這種設計,暫時沒搞懂。)
pip install --help pip search --help
2.2 查看所有自定義配置
可以使用以下命令查看當前的配置,加上-v參數可以查看當前加載了哪些配置文件。
pip config list
pip config list -v
三、將PyPi切換為本地源
注意,這個創建的pip.ini文件配置對conda等發行版中的pip也生效,因為conda等中的pip本質也是pip。
3.1 臨時切換軟件源
臨時使用軟件源,不管是install還是search都可以通過-i參數進行指定,如:
pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple
3.2 永久切換軟件源(並處理證書錯誤)
3.2.1 查看%APPDATA%
路徑【可選】
echo %APPDATA%
3.2.2 創建 %APPDATA%\pip\目錄
我這里直接在cmd使用命令創建。圖形界面創的話,上一步我們已查到%APPDATA%
的指向了一層層根着創即可
mkdir %APPDATA%\pip
3.2.3 創建pip.ini文件
使用文件編輯器創建一個文本,然后輸入以下內容,並將其保存到上邊的%APPDATA%\pip\目錄下,命名為pip.ini即可(注意不要保存成了pip.ini.txt)
Linux等是$HOME/.config/pip/pip.conf,index-url行可不需要
[global] trusted-host = pypi.tuna.tsinghua.edu.cn index-url = https://pypi.tuna.tsinghua.edu.cn/simple
3.2.4 驗證源成功切換且無報錯
我這里以pip安裝faker庫進行驗證,自己隨便裝什么都行
pip install faker
四、配置代理【可選】
應該來講在把源設置成國內源后應該來講,網絡網速什么的就應該都沒問題了,也就沒有配置代理的需求。
但在一些公司訪問中不允許pip直接訪問外部網站,一定要通過公司代理才能訪問,這時就只能配置代理。
配置代理也簡單,一樣在%APPDATA%\pip\pip.ini的[global]節區中設置proxy值即可。假設代理為“http://proxy.company.com:8080”:
[global] trusted-host = pypi.tuna.tsinghua.edu.cn index-url = https://pypi.tuna.tsinghua.edu.cn/simple proxy = http://proxy.company.com:8080
參考:
https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
http://mirrors.ustc.edu.cn/help/pypi.html
https://superuser.com/questions/727924/pip-and-ssl-certificate-errors
https://stackoverflow.com/questions/9698557/how-to-use-pip-on-windows-behind-an-authenticating-proxy