Grâce à l'installation du package pip qui dépend de opencv-python lors de la construction d'opencv à partir du code source

Aperçu

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 (?).

Constitution

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. ..

Construire et installer

$ 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

Grâce à l'installation du package pip qui dépend de opencv-python lors de la construction d'opencv à partir du code source
Obtenez uniquement le code source du package PyPI avec pip à partir de la ligne de commande
Code source de "Réglez la couleur du côté de l'affiche pour que la couleur des sous-titres Youtube change automatiquement."
Installation facile d'OpenCV sur RaspberryPi 3+
Tutoriel "Cython" qui rend Python explosif: lorsque le code C ++ dépend de la bibliothèque. Tout d'abord, CMake.
Installez la dernière version d'Apache httpd 2.4 à partir des sources sur Cent OS 8
Le cas où l'installation de pip est devenue plus facile avant que je ne le sache
Comment résoudre le problème que seul le processus reste lorsque vous appuyez sur X sur l'écran imshow d'OpenCV
Installez PostgreSQL à partir du code source sur CentOS
Détails des erreurs et contre-mesures survenues dans OpenCv2 lors de l'exécution de l'exemple de programme de reconnaissance d'objets de "Détection d'objets sur les outils"