我刚刚从源代码中提取了最新版本的 opencv,不幸的是目前我必须在一台机器上安装 2 个不同的版本。
所以我有旧版本的默认位置 /usr/local/...
和新版本的自定义位置。
我的问题是,如果我打开一个 python 终端并尝试 import cv2
,如果我从 opencv/lib
开始,我只能加载新版本新版本目录。
我希望能够切换我使用的 opencv 版本,理想情况下它会在 python 脚本本身中。
我希望能够在终端中设置 LD_LIBRARY_PATH
或 PYTHONPATH
或两者,或者使用 os.environ
更改环境变量, 但没有成功。
首先,我不明白为什么我必须在 lib
目录中才能加载新版本,其次我不明白为什么我不能动态更改 python 查找的位置使用环境变量导入模块。
感谢任何帮助。
最佳答案
您可以使用imp
模块从指定路径导入。
import imp
fp, pathname, description = imp.find_module('cv2', ['/path/to/opencv/'])
cv2 = imp.load_module('cv2', fp, pathname, description)
关于除非在特定目录中启动,否则 python 不会加载模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11641655/