解决python3.5无法导入cv2.so的问题

https://www.cnblogs.com/gdut-gordon/p/9480652.html
问题描述:

在python3.5环境中导入cv2报错,在python2.7中正常。注:命令行的前缀RL_2018HW是python3.5的环境。

从报错可以看出,在python3.5虚拟环境中,程序试图从 /opt/ros/kinetic/lib/python2.7/dist-packages/ 路径下导入cv2.so库文件。然而,该路径下的库文件是属于python2.7(普通环境)的,python3.5的cv2.so文件安装在虚拟环境对应的路径之下。

因此,虚拟环境中,程序得从 /home/gordon/python-virtual-environments/RL_2018HW/lib/python3.5/site-packages 路径下导入cv2.so文件。

解决方法:

如何修改python程序读取库文件的路径呢?

首先介绍2种方法,用于查看python读取库文件路径(以python3.5的环境为例)

  1. 读取环境变量$PYTHONPATH $ echo $PYTHONPATH
  2. 在python控制台中查看 >>> import sys >>> sys.path
    可以发现,两种方式出现了路径 /opt/ros/kinetic/lib/python2.7/dist-packages ,且其优先级比路径 /home/gordon/python-virtual-environments/RL_2018HW/lib/python3.5/site-packages 高。

我们希望程序优先读取python3.5的库路径,对应有两种方式!

修改环境变量$PYTHONPATH

修改当前终端的环境变量
export PYTHONPATH=/home/gordon/python-virtual-environments/RL_2018HW/lib/python3.5/site-packages

修改当前用户的环境变量

当使用命令激活ROS时,即运行 source /opt/ros/kinetic/setup.bash ,ROS会添加 /opt/ros/kinetic/lib/python2.7/dist-packages 到python路径。因此,需要在 .bashrc 文件中注释掉该命令行,并再次source读取环境变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值