我刚刚从源代码中提取了最新版本的opencv,不幸的是,目前我必须在一台机器上安装2个不同的版本。
所以我有旧版本的默认位置/usr/local/...
,以及新版本的自定义位置。
我的问题是,如果我打开一个python终端并尝试import cv2
,如果我从新版本的opencv/lib
目录开始,我只能加载新版本。
我希望能够切换我使用的opencv版本,理想情况下它将在python脚本本身。
我希望能够在终端中设置LD_LIBRARY_PATH
或PYTHONPATH
或两者,或使用os.environ
更改环境变量,但没有成功。
首先,我不明白为什么我必须在lib
目录中才能加载新版本,其次我不明白为什么我无法动态更改python导入模块的位置使用环境变量。
感谢任何帮助。
答案 0 :(得分:1)
您可以使用imp
模块从指定路径导入。
import imp
fp, pathname, description = imp.find_module('cv2', ['/path/to/opencv/'])
cv2 = imp.load_module('cv2', fp, pathname, description)
答案 1 :(得分:0)
使用sys模块。启动Python解释器后,您可以通过sys.path修改模块路径,该路径实际上只是一个列表。
import sys
sys.path.append("/path/to/cv2")