【问题标题】:Handle multiple version at the same time?同时处理多个版本?
【发布时间】:2012-06-13 10:07:44
【问题描述】:

我目前正在开发一个基于 Opencv (more info here) 的应用程序。 为了确保一切正常,我想用多个版本的 OpenCV(2.3、2.4)尝试相同的代码。

这主要针对 Linux 开发,但我也不介意为 Windows 找到解决方案。

作为奖励,如果我还可以在包版本和其他从源代码编译的版本之间切换,我真的很高兴。

我目前正在考虑的解决方案是下载并编译多个版本(无需 make install),然后手动使用选择的发布文件夹进行导入。 这并不能解决软件包安装问题,从长远来看可能无法真正使用

实现这一目标的最佳方式是什么?

【问题讨论】:

  • 抱歉,我看不出您希望您的代码与多个 opencv 版本一起使用的原因。正确的 opencv 版本将作为库随您的代码一起提供,这不像您要将代码发送到可能具有不同版本库的系统。我不确定 python 方面,但 2.4 版发生了很多变化,一些函数参数就是一个例子,所以为 2.3 编写的应用程序将与 2.4 略有不同。
  • 这就是为什么我希望能够看到使用不同版本的工作和不工作的原因。 ubuntu 软件包现在通过 Synaptic 提供 2.3 预编译版本,但我最新的 Fedora 用户可能会下载最后一个版本 (2.4)> 我想测试两个版本,而无需安装两个 Linux 系统

标签: python opencv


【解决方案1】:

Virtualenv 似乎是解决这个问题的好方法:

virtualenv 是一个创建隔离 Python 环境的工具。

...

假设您有一个需要 LibFoo 版本 1 的应用程序,但是 另一个应用程序需要版本 2。如何同时使用这两个 应用?

【讨论】:

  • 谢谢 Cédriv。我已经知道 virtualenv,但这不是针对可以使用 pip 安装的包吗?
  • 你不能有几个 virtualenv 环境和你的 opencv 库和一个脚本来启动你对每个环境的自动化测试。这样您就可以针对多个 opencv 版本进行测试。
  • @jlengrand :您可以使用 virtualenv 手动安装模块(只需使用 /path/to/your/virtualenv/bin/python setup.py install
  • 嗯,看起来确实很有趣。今晚我会试试,让你知道:)。谢谢