更改 Python 的 pip install 預設安裝依賴路徑
前言
宣告:python版本3.6,以下討論的Python也都是適用於3.x版本
在實際使用安裝python的pip安裝 依賴庫是非常的便捷的。
而且一般大家使用的都是安裝Anaconda 來學習和實踐python專案。
我們通常都是直接就是使用
pip install ****
其中****代表就是安裝的依賴庫名或者包名。
但是簡單的背後就是,我們的最重要的系統盤C盤都是逐漸滿了。更關鍵是你滿完之後還不好去刪除或者將一些依賴庫放在別的盤的路徑下,這就是一件非常糟糕的事情了。
所以今天,為了拯救C盤強迫症的自己,我是必須要好好折騰折騰,將pip install 安裝的依賴庫和包名都是放在Anaconda(別的盤中)目錄下的site-packages中去(全部歸到這個類下)。
總體步驟
第一步:先檢視自己的預設安裝路徑到底是在哪?列出全域性的packages包的安裝路徑在哪?
1. 按鍵(win+R) ->開啟cmd命令視窗。
2.鍵入
python -m site
得到這樣的結果:
sys.path = [ 'C:\\Users\\Administrator', 'F:\\Anaconda\\python36.zip', 'F:\\Anaconda\\DLLs', 'F:\\Anaconda\\lib', 'F:\\Anaconda', 'F:\\Anaconda\\lib\\site-packages', 'F:\\Anaconda\\lib\\site-packages\\win32', 'F:\\Anaconda\\lib\\site-packages\\win32\\lib', 'F:\\Anaconda\\lib\\site-packages\\Pythonwin', ] USER_BASE: 'C:\\Users\\Administrator\\AppData\\Roaming\\Python' (exists) USER_SITE: 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python36\\site-packages' (exists) ENABLE_USER_SITE: True
這裡有幾點說明:
①我們看見這裡的USER_BASE 和USER_SITE其實就是使用者自定義的啟用Python指令碼和依賴安裝包的基礎路徑。
②其中USER_BASE表示就是在C盤這個目錄下的Python.exe啟動程式路徑以及pip,esay-install,markdown等指令碼,(我們已經是安裝好了Anaconda Python,這個C盤又是什麼鬼,不想用它啊),而這個C盤的Python.exe啟動程式路徑其實就是我們在安裝Anaconda的時候一個分身,更準確的說,其實就是簡單的Python程式,並不是什麼IDE這種級別的可以類似Eclipse這樣去操作編譯豐富的功能視窗,只是簡單類似shell的一樣的存在。
所以要改。
③其中的USER_SITE其實就是使用者如果呼叫C盤路徑下的python.exe中的指令碼pip檔案去下載,就會將site-package的預設安裝到這個C盤路徑下。
並且大家有時候可能在使用 pip install 命令列安裝一些依賴的時候,總是會提示報錯“PermissionError:[WinError 5 ] Denied Excess."C"\\......."這樣的類似許可權拒絕訪問,並且提示你無管理員許可權的話,使用pip -install ... + [user-site] 這樣的字眼。”
python -m site --user-site
而我自己也曾經試驗過了,如果是許可權問題拒絕安裝訪問的話,安裝cmd命令提示框中提示的user-site使用方法,就能解決許可權安裝問題。
所以,user_site其實就是個人的site-packages預設安裝路徑了。而如果使用的是Anaconda 目錄下的Scripts中的pip 安裝依賴庫或包等,則是安裝在Anaconda路徑下的site-packages中去。
第二步:確認了是什麼原因,那麼就要去對應的配置檔案改了。
因為出現了類似以下
sys.path = [
'C:\\Users\\Administrator',
'F:\\Anaconda\\python36.zip',
'F:\\Anaconda\\DLLs',
'F:\\Anaconda\\lib',
'F:\\Anaconda',
'F:\\Anaconda\\lib\\site-packages',
'F:\\Anaconda\\lib\\site-packages\\win32',
'F:\\Anaconda\\lib\\site-packages\\win32\\lib',
'F:\\Anaconda\\lib\\site-packages\\Pythonwin',
]
USER_BASE: 'C:\\Users\\Administrator\\AppData\\Roaming\\Python' (exists)
USER_SITE: 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python36\\site-packages' (exists)
ENABLE_USER_SITE: True
那麼肯定是有對應的配置檔案去讀取的,我們去尋找修改即可。
cmd命令列視窗下鍵入:
python -m site -help
就會出現C:\Users\Administrator>python -m site -help
F:\Anaconda\lib\site.py [--user-base] [--user-site]
Without arguments print some useful information
With arguments print the value of USER_BASE and/or USER_SITE separated
by ';'.
Exit codes with --user-base or --user-site:
0 - user site directory is enabled
1 - user site directory is disabled by user
2 - uses site directory is disabled by super user
or for security reasons
>2 - unknown error
可見,管理這個檔案竟然就是Anaconda目錄下的site.py檔案,之前說C盤中的Python是它的分身還真沒說錯了。
找到
F:\Anaconda\lib\site.py
,修改其中的引數
實際修改這兩個就好了。
注意
USER_SITE = "F:\Anaconda\lib\site-packages"
這個是你要安裝下載的site-packages的路徑。而執行下載的pip等指令碼路徑是由USER_BASE決定,並且一定一定要換到同樣的有pip指令碼的路徑下,哪怕你路徑也請寫到
F:\Anaconda
當然這裡最好寫成
USER_BASE = "F:\Anaconda\Scripts"
可以看見Scripts就是這些執行程式和指令碼位置了。
第三步:測試安裝,保證你修改之後成功有效。
測試鍵入
pip install numpy
出現,在這個路徑下其實已經擁有了滿足的依賴包和庫了(之前已經安裝過了,今天只是將步驟總結下),所以證明是修改成功了。以上。