如何在 python 包中添加 cv2 作为要求?

Posted

技术标签:

【中文标题】如何在 python 包中添加 cv2 作为要求?【英文标题】:How do I add cv2 as a requirement in a python package? 【发布时间】:2017-07-29 10:07:56 【问题描述】:

我正在尝试制作自己的包,它使用 OpenCV Python 模块 cv2。但是,当使用 PyCharm 时,它会警告

不满足封装要求。

我怀疑这是因为我使用了推荐的方法将 cv2.pyd 复制/粘贴到我的 python 目录中。请注意,pip install cv2 不起作用。

在引入这个包时,确保满足要求的正确方法是什么?

编辑:

我的 setup.py 文件如下

from setuptools import setup

setup(name='image_processing',
      version='0.1',
      install_requires=['numpy', 'scipy', 'cv2'],
      description='Collection of useful image processing functions',
      url='',
      author='Bill',
      license='MIT',
      packages=['image_processing'],
      zip_safe=False)

这是尝试打包我的代码时出现错误的地方。通常我导入 numpy 或 cv2 没有问题。我使用 pip 安装了 Numpy,并通过上述方法安装了 cv2。如果我只使用 cv2 运行脚本,一切都会正常工作,但正是这种包装欺骗了我。

【问题讨论】:

你能import numpy吗?他们的网站声明numpy 是必需的。另一种选择可能是尝试这个非官方端口:pypi.python.org/pypi/opencv-python 是的,通常我使用numpycv2 没有问题。但是尝试创建一个使用 cv2 的包会导致问题(请参阅帖子中的编辑)。我考虑过使用非官方端口,但我想确保我将来添加的内容符合 OpenCV 标准(并且我将有明确的新功能文档)。 哦,这就是问题所在。 cv2 不是可以安装的包。如果您将cv2.pyd 文件复制/粘贴到您的项目中,我认为您不需要将其放在install_requires 下,只需确保该文件与您的包一起交付,或者用户可以自己添加该文件。 我担心可能是这种情况。 【参考方案1】:

您需要在需求中添加opencv-python

包在这里:https://pypi.python.org/pypi/opencv-python

然后,您的requirements.txt 文件是可以的,但有时 PyCharm 会不停地抱怨。如果是这种情况,则在“安装要求”标签旁边有“忽略要求”。后者是你要走的路。

(当前 - 2018.2 PyCharm 版本在要求中指定 opencv-python 时不会抱怨 cv2

【讨论】:

如果必须是官方的opencv怎么办?应该放什么?也许在这种情况下,它被遗漏了,只是在自述文件中指定为一种要求? @CMCDragonkai 你找到解决方案了吗?我相信python无法指定这样的要求:( 不幸的是,如果在要求中指定了 opencv-python-headless,Pycharm (2018.2) 仍然会抱怨 cv2【参考方案2】:

您必须指定 opencv python 包的版本。 "pip install opencv-python==2.4.9"

从here 找到正确的版本。

如果要安装最新的 opencv python 包,请使用 “点安装opencv-python”

【讨论】:

以上是关于如何在 python 包中添加 cv2 作为要求?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 2017 中将包添加到 python

如何在 npm 包中添加文件夹作为条目?

如何在不使用 cv2.warpAffine() 的情况下翻译图像? [Python 3 和 OpenCV 4.1]

pycharm 添加python包 举例cv2

Jupyter笔记本上的cv2导入错误

如何在一个类中调用java.util包中StringBuffer类的toString方法