zoukankan      html  css  js  c++  java
  • 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 的内容成功安装到虚拟环境下)

  • 相关阅读:
    SSM集成Mybatis和Druid
    SpringMVC集成Thymeleaf
    最简单的SpringMVC + Maven配置
    信息化平台架构设计
    TaskSchedule-任务调度系统设计
    Redis的类库封装设计
    [oracle] DBLINK +同义词,实现本地数据库访问另一台机器的数据库
    [Tomcat 部署问题] Undeployment Failure could not be redeployed ...
    [oracle原]访问局域网内出现“ORA-12541:TNS:无监听程序”
    [java插件]myeclipse添加插件
  • 原文地址:https://www.cnblogs.com/bigtreei/p/15094293.html
Copyright © 2011-2022 走看看