#1 Le 11/04/2024, à 19:35
- Valérie_z
Pas de chargement de Module OpenCV Python dans une webapp (sur Apache)
Bonjour,
J'utilise Python sous Apache, avec mod_python.publisher. Dans ma configuration, j'ai un VirtualHost dans lequel les lignes suivantes sont ajoutées :
<VirtualHost *:80>
(...)
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
(...)
</VirtualHost>
Le souci est que dans la page web que je charge, je ne peux pas importer le module Opencv qui m'interresse pour traiter un flux vidéo, alors que d'autres modules passent sans problème.
Pour prendre un exemple simple,
import numpy
# print(cv2.__version__)
def index(req):
message = """
<html>
<head><title>Test</title></head>
<body>
<p>Coucou tout le monde</p></body></html>
"""
return message
===> OK
tandis que
import cv2
print(cv2.__version__)
def index(req):
message = """
<html>
<head><title>Test</title></head>
<body>
<p>Coucou tout le monde</p></body></html>
"""
return message
===> Ne passe pas : ModuleNotFoundError: No module named 'cv2'
(le module Opencv est bien entendu installé, et apparaît dans pip3 list).
Quelqu'un aurait une idée ?
Merci
EDIT : Alors visiblement, le problème est le même sans apache, mais avec les librairies natives de Python. Dès lors qu'on exécute une page web via localhost, impossible de charger cv2. Exemple avec un petit serveur CGI lancé dans un terminal. Une fois avec l'import de numpy, l'autre avec cv2 :
import http.server
import numpy
port = 80
address = ("", port)
server = http.server.HTTPServer
handler = http.server.CGIHTTPRequestHandler
handler.cgi_directories = ["/"]
httpd = server(address, handler)
print(f"Serveur démarré sur le PORT {port}")
httpd.serve_forever()
===> Démarrage du script ok, le serveur tourne et permet d'appeler des pages en localhost
import http.server
import cv2
port = 80
address = ("", port)
server = http.server.HTTPServer
handler = http.server.CGIHTTPRequestHandler
handler.cgi_directories = ["/"]
httpd = server(address, handler)
print(f"Serveur démarré sur le PORT {port}")
httpd.serve_forever()
===> échec démarrage : ModuleNotFoundError: No module named 'cv2'
Quelqu'un sait comment utiliser Opencv via web avec localhost, ou connaîtrait un équivalent compatible web pour traiter les flux vidéo ?
Merci
Dernière modification par Valérie_z (Le 11/04/2024, à 22:07)
PC1 : 12e Gen Intel® Core™ i9-12900 x 24 CPU 5.10 GHz - 32.0 Gio de RAM - Sous Ubuntu 22.04.1 LTS (64 bits) - Noyau : 6.8.0-48-generic
PC2 : Intel® Core™2 CPU 6700 @ 2.66GHz - 3,8 Gio de RAM - Sous Ubuntu 18.04 LTS (64 bits) - Noyau : 4.15.0-197-generic
PC3 : AMD® Ryzen 9 6900HX - 8 coeurs x 4.90 GHz - 32 GO de RAM DDR5 - Sous Ubuntu 22.04.3 LTS (64 bits) - Noyau : 6.5.0-35-generic
Hors ligne