python - setup.py 通过 conda (conda-forge opencv) 安装了 cv2 依赖项
问题描述
我正在尝试在一个包中收集 python 代码gnn_pylib
并将其安装在我的 conda 环境中。我的包将需要 opencv,它已通过以下方式安装在我的 conda 环境中:
conda install -c conda-forge opencv
我可以正确运行 cv2 函数,并且可以成功调用使用 cv2 函数的包中的函数:
import gnn_pylib
gnn_pylib.show()
但是当我尝试安装pip install -e .
从gnn_pylib
目录运行的包时,出现以下错误:
Collecting cv2 (from gnn-pylib==0.1)
Could not find a version that satisfies the requirement cv2 (from gnn-pylib==0.1) (from versions: )
No matching distribution found for cv2 (from gnn-pylib==0.1)
有什么我想念的吗?我应该以某种方式通知pip
我的conda
opencv吗?
该包具有以下结构:
gnn_pylib/
gnn_pylib/
__init__.py
show.py
setup.py
__init__.py
如下:
from .show import foo
show.py
如下:
import cv2
import numpy as np
def foo():
cv2.imshow("random", np.random.rand(10,10))
cv2.waitKey()
return
setup.py
如下:
from setuptools import setup
setup(name='gnn_pylib',
version='0.1',
description='General purpose python library',
url='http://github.com/whatever/gnn_pylib',
author='whatever',
author_email='whatever@gmail.com',
license='MIT',
packages=['gnn_pylib'],
install_requires=[
'numpy',
'cv2',
],
zip_safe=False)
解决方案
而不是使用cv2
作为所需的包名称,而是使用opencv-python
,因为这是 PyPI 提供的 OpenCV 绑定包的名称。因此,您的setup.py
文件将看起来像这样(与上面的 OpenCV 绑定包要求的不同条目相同):
from setuptools import setup
setup(name='gnn_pylib',
version='0.1',
description='General purpose python library',
url='http://github.com/whatever/gnn_pylib',
author='whatever',
author_email='whatever@gmail.com',
license='MIT',
packages=['gnn_pylib'],
install_requires=[
'numpy',
'opencv-python',
],
zip_safe=False)
推荐阅读
- javascript - 仅当条件为 True 时才在 python 中使用 Eel 调用 JavaScript 函数
- javascript - 帧运动退出动画不适用于 Next.JS
- android - 有没有办法在第一次实例化后使用 Hilt Injection 重新创建房间数据库?
- mysql - 我可以在 MySQL 中为复合/多列索引设置多顺序索引吗?
- sql - ora-00932 不一致的数据类型预期数字得到 char plsql
- vscode-settings - VS 代码找不到 -lgcc 文件
- javascript - 如何在laravel中使用javascript在没有预览对话框的情况下打印
- python - 遍历一个列表并找到所有属性的 ID:
- flutter - 让蓝牙设备自动连接和断开的方法是什么?
- javascript - 如果我要查找的值在数组中的对象中,我想通过 javascript 返回 true