conda與pip的鏡像源與代理設置
- 一、前言
- 二、conda鏡像源設置
- 2.1conda默認鏡像源介紹
- 2.2通過終端設置鏡像源
- 2.3通過配置文件設置鏡像源
- 三、pip鏡像源設置
- 3.1pip默認鏡像源介紹
- 3.2通過終端臨時設置鏡像源
- 3.3通過配置文件設置一個或多個鏡像源
- 四、conda代理設置
- 4.1通過終端設置代理
- 4.2通過配置文件設置代理
- 4.3在系統環境變量中設置代理
- 五、pip代理設置
- 5.1通過終端臨時設置代理
- 5.2通過配置文件設置代理
- 5.3在系統環境變量中設置代理
- 六、不同虛擬環境中的pip設置
- 6.1在虛擬環境文件夾下創建pip配置文件
- 6.2在虛擬環境的激活腳本中設置配置
- 參考文檔
一、前言
使用conda、pip命令行工具安裝一些需要的工具包或函數庫時,由于默認的鏡像源連接速度很慢,影響開發效率,或者由于計算機處于局域網,必須通過規定的IP地址轉接才能訪問互聯網,因此本文對windows系統下如何設置鏡像源及代理進行介紹。
系統環境如下:
windows:win10專業版
conda:4.9.2
pip:24.0
二、conda鏡像源設置
conda的鏡像源可通過終端和配置文件進行設置,都是設置后永久生效。
2.1conda默認鏡像源介紹
conda默認的鏡像源通常指 Anaconda 官方提供的軟件包倉庫地址,有三個,地址如下:
https://repo.anaconda.com/pkgs/main
https://repo.anaconda.com/pkgs/r
https://repo.anaconda.com/pkgs/msys2
main 頻道:主要包含由Anaconda提供和維護的廣泛使用的開源軟件包。
r 頻道:專門用于 R 語言及其相關工具和包。
msys2 頻道:包含 Windows 上使用的工具和庫。
如果未進行任何鏡像源設置,那么conda將使用默認鏡像源,按照順序依次從上述地址查找軟件包。
2.2通過終端設置鏡像源
以管理員身份打開conda終端,然后以清華鏡像源為例,輸入以下命令添加鏡像源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
注意使用命令添加的鏡像源,類似于棧結構的后進先出,最后添加的優先級最高,即如果輸入上述命令,那么main頻道的優先級最高,conda將優先從main頻道查找軟件包。
清華鏡像源的三個頻道介紹如下:
main :是 Anaconda 的主要官方渠道,包含最新穩定版軟件包,推薦使用。
free :是舊的官方免費渠道,包括了在 Anaconda 5.0 之前發布的所有軟件包,已經停止更新,僅用于兼容性需求。
cloud/conda-forge: 是社區維護的渠道,提供了廣泛的包集合和最新的軟件版本,更新頻繁。
與清華的conda-forge頻道相對應,conda也有一個社區維護的頻道,地址為:
https://conda.anaconda.org/conda-forge
添加鏡像源后,可使用如下命令進行查看:
conda config --show channels
顯示出的鏡像源的從上到下排列順序即為優先級順序。
想要移除某個鏡像源,可使用如下命令:
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
如果想要移除添加的全部鏡像源,可使用如下命令,移除后conda將使用默認源:
conda config --remove-key channels
2.3通過配置文件設置鏡像源
conda配置文件名為.condarc,位于C:\Users\自己的用戶名文件夾。以添加清華源為例,使用文本編輯器打開文件后,在文件中添加如下內容:
channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge- defaults
show_channel_urls: true
report_errors: false
文件中在channels中定義了三個清華源和一個defaults,defaults代表默認源,當安裝軟件包時,conda會首先依次從三個清華源中查找,如果查找不到則會到默認源中查找。
show_channel_urls:用于控制 conda 是否在輸出中顯示包的下載 URL,這對于調試和了解包從哪個頻道下載很有用。
report_errors:控制是否在 conda 出現錯誤時,將錯誤信息報告給 conda 開發團隊。這有助于開發團隊了解用戶遇到的問題并改進 conda。
三、pip鏡像源設置
pip的鏡像源可通過終端和配置文件設置,但通過終端只能進行臨時性設置,配置文件的設置為永久設置,這一點與conda有所不同。
3.1pip默認鏡像源介紹
pip安裝軟件包時,默認的鏡像源是 Python Package Index (PyPI),其 URL 為 https://pypi.org/simple。當未對鏡像源進行設置時,pip會使用默認鏡像源。
與conda不同,pip默認的鏡像源只有上述一個。
3.2通過終端臨時設置鏡像源
pip可以通過終端以命令的形式設置鏡像源,但設置的鏡像源的命令與安裝軟件包的命令捆綁在一起,即安裝一次軟件包設置一次鏡像源,在當前鏡像源查找不到軟件包時不會去默認鏡像源繼續查找,以安裝numpy和使用清華鏡像源為例,命令如下:
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
也可通過終端設置pip下載軟件包進行網絡連接的超時時間,默認超時時間是15s,設置超時時間為30s的命令如下:
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple --timeout 30
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout 30
上述兩條命令是等效的,timeout和default-timeout都可設置超時時間。
注意超時時間是針對網絡連接而言,包括通過代理服務器訪問鏡像源并下載軟件包的整個過程,不單作用于鏡像源,也作用于代理。
3.3通過配置文件設置一個或多個鏡像源
pip默認配置文件名為pip.ini,位于%APPDATA%\pip,如果找不到該文件夾或文件,可以手動創建。打開文件后,添加如下內容:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
extra-index-url =https://pypi.org/simplehttps://pypi.mirrors.ustc.edu.cn/simple
timeout = 30
上述內容定義了三個鏡像源和超時時間,三個源的優先級即為從上到下的排列順序,pip下載軟件包時會依次從三個源進行查找。
保存配置文件后,可使用以下命令來驗證 pip 的配置:
pip config list
四、conda代理設置
conda的代理可通過終端和配置文件進行設置,也還可在系統的環境變量中設置代理,conda在自身沒有設置代理的情況下會讀取環境變量中的代理設置,但環境變量的代理設置可能會影響到其他程序。如果同時設置了自身的代理和環境變量的代理,conda會優先使用自身代理。
4.1通過終端設置代理
設置http和https代理命令如下:
conda config --set proxy_servers.http http://0.0.0.0:00000
conda config --set proxy_servers.https https://0.0.0.0:00000
設置完成后,可通過如下命令進行查看:
conda config --show proxy_servers
也可使用如下命令刪除代理:
conda config --remove-key proxy_servers.http
conda config --remove-key proxy_servers.https
4.2通過配置文件設置代理
打開配置文件,添加如下內容:
proxy_servers:http: http://0.0.0.0:00000https: https://0.0.0.0:00000
4.3在系統環境變量中設置代理
在系統環境變量中設置代理的方式有兩種,分別為使用命令行終端(cmd)和通過界面設置。
方式一:使用命令行終端(暫時性設置)
打開cmd,然后輸入以下命令:
set HTTP_PROXY=http://0.0.0.0:00000
set HTTPS_PROXY=https://0.0.0.0:00000
這種方式設置的代理僅在當前命令行終端有效,關閉命令行終端后設置會丟失。
方式二:界面設置(永久設置)
1、打開 我的電腦,在空白處右鍵,點擊屬性;
2、點擊左側的高級系統設置;
3、在 系統屬性 窗口中,點擊 環境變量;
4、在 環境變量 窗口中,選擇在用戶變量或系統變量執行下述步驟即可:
5、
點擊 新建 按鈕。
在 變量名 中輸入 HTTP_PROXY。
在 變量值 中輸入 http://0.0.0.0:00000。
點擊 確定。
6、重復步驟5添加 HTTPS_PROXY 變量。
設置好后如下圖:
設置完成后打開cmd,輸入以下命令查看環境變量設置:
echo %HTTP_PROXY%
echo %HTTPS_PROXY%
五、pip代理設置
pip代理設置與鏡像源設置類似,通過終端只能進行臨時性設置,而通過配置文件可實現永久設置,此外與conda一樣,也可通過系統的環境變量設置代理,pip自身的代理優先級同樣高于環境變量的代理。
5.1通過終端臨時設置代理
以下載安裝numpy為例,設置代理命令如下:
pip install numpy --proxy http://0.0.0.0:00000
5.2通過配置文件設置代理
打開配置文件,添加以下內容:
[global]
proxy = http://0.0.0.0:00000
保存配置文件后,可通過以下命令來驗證 pip 的配置:
pip config list
5.3在系統環境變量中設置代理
參照4.3小節。
六、不同虛擬環境中的pip設置
上述pip的配置文件是全局配置文件,會作用于所有由conda創建的虛擬環境中的pip,如果需要對每個虛擬環境中的pip進行一些特定配置,方法如下:
6.1在虛擬環境文件夾下創建pip配置文件
如虛擬環境名為myenv,則到conda的安裝目錄\envs\myenv目錄下,創建pip.ini文件,按照前文所述對pip進行配置,那么在該虛擬環境下使用pip就會加載此配置文件。
6.2在虛擬環境的激活腳本中設置配置
1、找到虛擬環境的激活腳本目錄:conda的安裝目錄\envs\myenv\etc\conda\activate.d
如果activate.d文件夾不存在,可進行創建。
2、創建或編輯一個名為 pip_config.bat 的腳本文件,內容如下:
set PIP_CONFIG_FILE=%CONDA_PREFIX%\pip.conf
3、找到虛擬環境的deactivate 腳本目錄:conda的安裝目錄\envs\myenv\etc\conda\deactivate.d
如果deactivate.d文件夾不存在,可進行創建。
4、創建或編輯一個名為 de_pip_config.bat 的腳本文件,重置環境變量,內容如下:
set PIP_CONFIG_FILE=
5、然后在虛擬環境的根目錄中創建 pip.conf 文件,按照前文所述對pip進行配置。
參考文檔
更換pip源到國內鏡像