Partage
  • Partager sur Facebook
  • Partager sur Twitter

cx_freeze et opencv

    13 octobre 2012 à 14:40:34

    Salut à tous,

    je programme depuis quelque temps sous opencv et l'idée m'est venue de créer un exécutable. Jusqu'à la, aucun problèmes, j'utilise souvent cx_freeze qui ne m'avait jamais causé trop de problèmes.

    Cependant lorsque je lance cx_freeze, il ressort une RuntimeError (dans la fonction _AddModule, logiquement). J'ai essayer de trouver l'erreur dans mon code, et j'en ai conclu que... seule l'importation du module opencv pouvait provoquer l'erreur. Même sur un code comme celui-ci :
    #!/usr/bin/python
    #coding: UTF-8
    
    import cv
    


    j'ai une erreur. J'ai remarqué aussi que si j'importe un module inexistant, on me dis que le module n'existe pas sans pour autant stopper le processus. Donc cx_freeze reconnait quand même le module ! Voila un bout de l'erreur :

    File "/usr/local/lib/python2.7/dist-packages/cx_Freeze/finder.py", line 364, in _LoadModule
        self._ScanCode(module.code, module, deferredImports)
      File "/usr/local/lib/python2.7/dist-packages/cx_Freeze/finder.py", line 452, in _ScanCode
        module, relativeImportIndex)
      File "/usr/local/lib/python2.7/dist-packages/cx_Freeze/finder.py", line 240, in _ImportModule
        deferredImports, namespace = namespace)
      File "/usr/local/lib/python2.7/dist-packages/cx_Freeze/finder.py", line 301, in _InternalImportModule
        namespace = namespace)
      File "/usr/local/lib/python2.7/dist-packages/cx_Freeze/finder.py", line 317, in _InternalImportModule
        parentModule, namespace)
      File "/usr/local/lib/python2.7/dist-packages/cx_Freeze/finder.py", line 330, in _LoadModule
        module = self._AddModule(name)
      File "/usr/local/lib/python2.7/dist-packages/cx_Freeze/finder.py", line 86, in _AddModule
        module = self._modules[name] = Module(name)
    RuntimeError: maximum recursion depth exceeded while calling a Python object


    Je n'ai pas trouvé de réponse en cherchant sur le net, je fait donc appel à vous. Merci.
    • Partager sur Facebook
    • Partager sur Twitter
    Si le débuggage est l'art d'enlever les bugs, alors la programmation doit-être l'art de les créer
    Anonyme
      13 octobre 2012 à 15:04:46

      Je ne connais pas cx_freeze avec opencv, mais la réponse de ce post sur stackoverflow semble résoudre le problème.

      • Partager sur Facebook
      • Partager sur Twitter
        13 octobre 2012 à 15:26:38

        Dans ce post, la solution proposée est apparemment de copier des DLL (je suis sous ubuntu donc ce sera des so), mais après le script cx_freeze. Or je ne parvient justement pas à excecuter mon script en entier.

        L'autre solution est de rentrer par exemple cxfreeze main.py --include-modules cv, mais ça me renvoi la même erreur. J'ai oublié de le dire dans le post précédent, mais lorsque j'essaye le même code python en remplaçant "cv" par "cv2", sa marche bien : peut-être un problème avec ma version d'opencv : mais après vérification, tout marche correctement.
        • Partager sur Facebook
        • Partager sur Twitter
        Si le débuggage est l'art d'enlever les bugs, alors la programmation doit-être l'art de les créer

        cx_freeze et opencv

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown