1

我刚刚从源代码中提取了最新版本的 opencv,不幸的是,目前我必须在一台机器上安装 2 个不同的版本。

所以我有 /usr/local/...旧版本的默认位置,以及新版本的自定义位置。

我的问题是,如果我打开一个 python 终端并尝试import cv2,如果我从新版本的目录开始,我只能加载opencv/lib新版本。

我希望能够切换我使用的 opencv 版本,理想情况下它将在 python 脚本本身中。

我希望能够在终端中设置一个LD_LIBRARY_PATHPYTHONPATH两个,或者使用 更改环境变量os.environ,但没有成功。

首先,我不明白为什么我必须在lib目录中才能加载新版本,其次我不明白为什么我不能动态更改 python 使用环境变量导入模块的位置。

任何帮助表示赞赏。

4

2 回答 2

1

您可以使用该imp模块从指定路径导入。

import imp
fp, pathname, description = imp.find_module('cv2', ['/path/to/opencv/'])
cv2 = imp.load_module('cv2', fp, pathname, description)

http://docs.python.org/library/imp.html

于 2012-07-25T02:12:46.217 回答
0

使用 sys 模块。Python 解释器启动后,你可以通过 sys.path 修改模块路径,实际上只是一个列表。

import sys
sys.path.append("/path/to/cv2")
于 2012-07-25T02:07:12.707 回答