conda環境下pip install 無法安裝到指定conda環境中(conda環境的默認pip安裝位置)


Outline

今天新建了個conda虛擬環境,需要安裝某個庫,進行了以下操作:

conda activate py38  # 激活名為py38的虛擬環境
pip install mdlib -i http://nexus.td.internal/nexus/repository/pypi_group/simple  # 安裝需要的庫(源是我們自己搭建的nexus)

 然而pip安裝完后,發現安裝到這里了: .local/lib/python3.8/site-packages

按理說應該安裝到這里:/opt/conda/envs/py38/lib/python3.6/site-packages

指定pip安裝:

直接指名道姓(指定pip)的安裝,這下應該可以了吧;

然並卵,依然會自動安裝到 .local/ 下面。

解決

查看包的搜索路徑

可以通過 python -m site(類似於 sys.path()的效果) 查看當前環境的包搜索路徑(pip默認安裝路徑

以及用戶環境的目錄

因為 pip install 背后實質上是通過 setup.py 來安裝python包的;

而 setup.py 中用到 setuptools,安裝過程中會用到sys.path信息,雖然上面sys.path中的信息包含 envs/py38,這個虛擬環境路徑;
而且sys.path中的目錄排序是有優先級順序的(
envs/py38 路徑排在.local后面

再者,當前用戶環境目錄也是 .local/, 且會最優先用戶環境目錄進行安裝目錄的確認;

修改用戶環境目錄

注:修改的前提是已經進入虛擬環境,這樣修改的是虛擬環境下的配置,而不會影響到全局

修改 site.py 文件:

sudo vim /opt/conda/envs/py38/lib/python3.8/site.py  # 是否sudo看情況

 默認 USER_SITE、USER_BASE 都為None (用的時候會默認填充當前用戶的)

 接下來把他們修改為conda環境的目錄:

 OK,再去執行下pip install 試試;

(pip install 的內容成功安裝到虛擬環境下)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM