conda填加自己python环境变量


本文主要是要能通过.pth 文件来填加自己的python包位置,本质是修改site-packages内容。

1 应用场景

系统中己从源码安装好opencv,tensorrt和tensorflow,现在创建一个conda虚拟环境,或使用conda base环境,conda 环境Python版本与系统完全一样。

conda activate base
conda install python==3.8.5 # 安装与系统完全一样的版本

2 查看系统和虚拟环境的python环境变量

有两种方法,第一种:

import sys
print(sys.path)

在这里插入图片描述
输出是一个列表:

['', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/usr/local/lib/python3.8/dist-packages', '/usr/lib/python3/dist-packages']

第二种方法:

python -m -site

在这里插入图片描述
要注意的是图中sys.path /root是当前路径
接着查看虚拟环境的:
在这里插入图片描述
对比系统和虚拟环境中的sys.path完全不一样,所以要想在虚拟环境中使用系统的python包,要将系统环境添加到虚拟环境中。

3 查找目标路径

找到所有的环境变量后,进入到conda虚拟环境中,以opencv 为例:

conda activate base 
python
import cv2

在这里插入图片描述
报错ModuleNotFoundError,所以要找到opencv的安装位置。
查找方法有两个.
第一种:

find / -name cv2*

在这里插入图片描述
图中最后一行是opencv所在路径
第二种:

python
import sys
paths = ['', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/usr/local/lib/python3.8/dist-packages', '/usr/lib/python3/dist-packages']
for p in paths:
    try:
        sys.path.append(p)
        import cv2
        print(p)
    except:
        pass

在这里插入图片描述

4 虚拟环境中填加路径

解决报错ModuleNotFoundError有两种方法,第一种:

# ln -s 源 目标
ln -s /usr/local/lib/python3.8/dist-packages/cv2/python-3.8/cv2.cpython-38-x86_64-linux-gnu.so /opt/conda/lib/python3.8/site-packages/cv2.so

第二种:
也就是本文要写的

vim /opt/conda/lib/python3.8/site-packages/mypackages.pth

文件中填写:/usr/local/lib/python3.8/dist-packages
如果有多个路径,一个路径一行即可。更多关于.pth文件说明请参看链接1 链接2
关于这两种方法,第一种只填加cv2包,第二种会把系统中所有包全部填加。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值