0


Conda虚拟环境用conda和pip安装软件包的路径问题

  1. pip安装路径。参考博客ubunt18.04中pip安装的包和虚拟环境中pip安装的包各自在哪里
  1. 一:正式环境中
  2. 1. pip pip3 安装的包在下面路径(pip指向了python3.6解释器)
  3. ~/.local/lib/python3.6/site-packages/
  4. 2. pip2 安装的包在下面路径下
  5. ~/.local/lib/python2.7/site-packages/
  6. 3. pip3.5 安装的包在下面路径下
  7. ~/.local/lib/python3.5/site-packages/
  8. 二:虚拟环境中
  9. pip 安装的包在下面路径下
  10. ~/.virtualenvs/虚拟环境名目录/lib/python3.5(或python2.7python3.6)/site-packages
  1. conda安装路径。参考博客conda 和 pip的区别&创建虚拟环境和下载第三方库的方法
  1. conda安装软件包的路径是~/Anaconda3/pkgs
  2. #anaconda默认安装在~/#
  3. 所以,在某个环境中下载了包,再到另一个环境中下载同样的包时,
  4. conda会自动在上面的目录里找,如果有,不会重复下载,
  5. 而是将这个包的site_package下的文件复制到当前环境下。
  6. 和直接pip install 一样了。
  7. # ~/.conda/envs/EnvName/python3.6/site-packages
  8. 使用conda uninstall时,和pip uninstall 一样,
  9. 删除了当前环境site_packages中的包的内容,
  10. 但是在上述目录里面还存在这个包。
  1. 实测安装并非如此。
  1. 但在conda虚拟环境中实测pip install将软件包安装在了上述全局路径中,
  2. ~/.local/lib/python3.6/site-packages/
  3. conda list查不到。

4. 上干货--解决conda环境pip安装至全局路径问题。

参考博客:conda环境下pip install 无法安装到指定conda环境中(conda环境的默认pip安装位置)

conda环境下pip install 无法安装到指定conda环境中(conda环境的默认pip安装位置)​​​​​

** 我的观点:pip默认把软件包安装到全局site-packages中。**

  1. 好多文章说在虚拟环境中用pip安装软件包会安装到这个虚拟环境,
  2. 但我实测是安装到了全局pythonsite-packages
  1. 有的文章通过修改~/.profile(开机启动一次)或者~/.bashrc(打开一个shell启动一次),
  2. 确实可以将当前虚拟环境路径设置为优先检索路径。
  3. 通过echo $PATH可以查看当前环境检索路径。
  4. 但此作用只用于你which pip或者which python再或pip --version
  5. 显示在当前虚拟环境,并不能修改pip安装位置
  1. 真正的pip安装位置是由当前环境的lib文件夹中的pythonx.x文件夹下的site.py决定的。

  1. 其中的site.py中的
  2. USER_SITE = None
  3. USER_BASE = None
  4. USER_SITE 表示安装路径
  5. USER_BASE 表示执行下载的pip等脚本的路径
  6. 所有的python包都一样,当你不修改时,默认修改为系统的全局路径。
  7. (没有看懂代码,猜测是读取的系统环境路径,而非用户级别的.bashrc或.profile能修改的)
  8. 可能是为了节约空间才这样设置的吧,这样可以集中管理所有环境的软件包。
  1. #通过此命令可以查看当前环境搜索路径
  2. python -m site
  1. (base) ubuntu@ubuntu:~$ conda activate raft
  2. (raft) ubuntu@ubuntu:~$ python -m site
  3. sys.path = [
  4. '/home/ubuntu',
  5. '/opt/ros/melodic/lib/python2.7/dist-packages',
  6. '/home/ubuntu/anaconda3/envs/raft/lib/python36.zip',
  7. '/home/ubuntu/anaconda3/envs/raft/lib/python3.6',
  8. '/home/ubuntu/anaconda3/envs/raft/lib/python3.6/lib-dynload',
  9. '/home/ubuntu/.local/lib/python3.6/site-packages',
  10. '/home/ubuntu/anaconda3/envs/raft/lib/python3.6/site-packages',
  11. ]
  12. USER_BASE: '/home/ubuntu/.local' (exists)
  13. USER_SITE: '/home/ubuntu/.local/lib/python3.6/site-packages' (exists)
  14. ENABLE_USER_SITE: True

修改后再次执行:

  1. python -m site
  1. (raft) ubuntu@ubuntu:~$ python -m site
  2. sys.path = [
  3. '/home/ubuntu',
  4. '/opt/ros/melodic/lib/python2.7/dist-packages',
  5. '/home/ubuntu/anaconda3/envs/raft/lib/python36.zip',
  6. '/home/ubuntu/anaconda3/envs/raft/lib/python3.6',
  7. '/home/ubuntu/anaconda3/envs/raft/lib/python3.6/lib-dynload',
  8. '/home/ubuntu/anaconda3/envs/raft/lib/python3.6/site-packages',
  9. ]
  10. USER_BASE: '/home/ubuntu/anaconda3/envs/raft/lib/python3.6' (exists)
  11. USER_SITE: '/home/ubuntu/anaconda3/envs/raft/lib/python3.6/site-packages' (exists)
  12. ENABLE_USER_SITE: True
  1. 证明路径修改成功,此后在虚拟环境中用pip下载软件包将仅下载在当前虚拟环境。
  2. 不会影响全局环境的依赖关系。

下载一个软件包试试:

  1. (raft) ubuntu@ubuntu:~$ pip install numpy
  2. Collecting numpy
  3. Downloading numpy-1.19.5-cp36-cp36m-manylinux2010_x86_64.whl (14.8 MB)
  4. |████████████████████████████████| 14.8 MB 12.3 MB/s
  5. Installing collected packages: numpy
  6. Successfully installed numpy-1.19.5

conda list也可以查到:

  1. (raft) ubuntu@ubuntu:~$ conda list
  2. # packages in environment at /home/ubuntu/anaconda3/envs/raft:
  3. #
  4. # Name Version Build Channel
  5. _libgcc_mutex 0.1 main
  6. _openmp_mutex 5.1 1_gnu
  7. ca-certificates 2022.07.19 h06a4308_0
  8. certifi 2021.5.30 py36h06a4308_0
  9. ld_impl_linux-64 2.38 h1181459_1
  10. libffi 3.3 he6710b0_2
  11. libgcc-ng 11.2.0 h1234567_1
  12. libgomp 11.2.0 h1234567_1
  13. libstdcxx-ng 11.2.0 h1234567_1
  14. ncurses 6.3 h5eee18b_3
  15. numpy 1.19.5 pypi_0 pypi
  16. openssl 1.1.1q h7f8727e_0
  17. pip 21.2.2 py36h06a4308_0
  18. python 3.6.13 h12debd9_1
  19. readline 8.1.2 h7f8727e_1
  20. setuptools 58.0.4 py36h06a4308_0
  21. sqlite 3.39.3 h5082296_0
  22. tk 8.6.12 h1ccaba5_0
  23. wheel 0.37.1 pyhd3eb1b0_0
  24. xz 5.2.6 h5eee18b_0
  25. zlib 1.2.12 h5eee18b_3

最后,上述文章有哪里说明错误,请戳我改正!

标签: conda pip python

本文转载自: https://blog.csdn.net/stone9528/article/details/127321034
版权归原作者 stone9528 所有, 如有侵权,请联系我们删除。

“Conda虚拟环境用conda和pip安装软件包的路径问题”的评论:

还没有评论