J'ai construit opencv à partir du code source dans cet article. Je peux faire ʻimport cv2` depuis mon propre programme, mais quand j'essaye d'installer un paquet qui dépend d'opencv-python, je me fâche parce qu'il n'y a pas d'opencv-python. Puisque je viens de mettre un lien symbolique sur les packages de site, n'est-ce pas que opencv est inclus dans pip? À propos, il semble que cmake n'ait pas spécifié l'emplacement de pip.
J'ai donc créé un package qui enveloppe cv2. ʻImport cv2` peut être fait, donc j'ai pensé qu'il serait possible de créer un paquet vide opencv-python et de tricher, mais comme c'était un gros problème, je l'ai emballé correctement (?).
La configuration est la suivante.
wheel/
├── build #Le construit est sorti
├── cv2 #Devenir un nom de package
│ ├── __init__.py #Montrez-le comme cv2 à l'extérieur
│ └── _native
│ ├── cv2.cpython-36m-aarch64-linux-gnu.so #entité
│ └── __init__.py #Importez le cv2 original
├── dist #Le fichier whl est sorti. Pip installez ceci
├── MANIFEST.in #Spécifiez l'entité.
└── setup.py #Divers réglages de pip
Le contenu de chaque fichier est le suivant. __init __. py
Je ne sais rien. ..
setup.py
from setuptools import setup
from setuptools.dist import Distribution
class BinaryDistribution(Distribution):
def has_ext_modules(foo):
return True
long_description = "long description of the wheel"
setup(
name='opencv-python',
packages=['cv2'],
version='3.4.3',
include_package_data=True,
distclass=BinaryDistribution,
author='devmikyom',
description='OpenCV wrapper for Ubuntu 20.04 on raspberry pi 4',
long_description = long_description,
classifiers=[
'Programming Language :: Python :: 3.6'
]
)
:MANIFEST:in
include cv2/_native/cv2.cpython-36m-aarch64-linux-gnu.so
wheel/cv2/__init__.py
from ._native.cv2 import *
__version__ = '3.4.3'
wheel/cv2/_native/__init__.py
from .cv2 import *
__init __. py
Je ne sais vraiment rien. ..
$ python setup.py bdist_wheel
$ pip install dist/opencv_python-3.4.3-cp36-cp36m-linux_aarch64.whl
ʻImport cv2` peut être fait et il semble être visible à la fois comme pip et opencv-python. Je ne sais pas si cela me convient vraiment ...
Recommended Posts