conda环境下pip install 无法安装到指定conda环境中(conda环境的默认pip安装位置)
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 # 安装需要的库(源是
然而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
的内容成功安装到虚拟环境下)