2017-05-28 1 views
0

J'ai utilisé cxFreeze pour construire mon code Python pendant un certain temps et je n'ai eu aucun problème, jusqu'à aujourd'hui. Je ne suis pas sûr que le problème vient de cxFreeze, cependant. Bien qu'il existe certaines exceptions RuntimeError sur le Web, elles ne correspondent pas exactement à ce que j'obtiens.Erreur de construction avec setuptools: RuntimeError

$ python2.7 setup.py build 
running build 
running build_exe 
Traceback (most recent call last): 
    File "setup.py", line 79, in <module> 
    executables = [client, updater, dbg_updater] 
    File "C:\python27\lib\site-packages\cx_Freeze\dist.py", line 362, in setup 
    distutils.core.setup(**attrs) 
    File "C:\python27\lib\distutils\core.py", line 151, in setup 
    dist.run_commands() 
    File "C:\python27\lib\distutils\dist.py", line 953, in run_commands 
    self.run_command(cmd) 
    File "C:\python27\lib\distutils\dist.py", line 972, in run_command 
    cmd_obj.run() 
    File "C:\python27\lib\distutils\command\build.py", line 127, in run 
    self.run_command(cmd_name) 
    File "C:\python27\lib\distutils\cmd.py", line 326, in run_command 
    self.distribution.run_command(command) 
    File "C:\python27\lib\distutils\dist.py", line 972, in run_command 
    cmd_obj.run() 
    File "C:\python27\lib\site-packages\cx_Freeze\dist.py", line 232, in run 
    freezer.Freeze() 
    File "C:\python27\lib\site-packages\cx_Freeze\freezer.py", line 619, in Freeze 
    self.finder = self._GetModuleFinder() 
    File "C:\python27\lib\site-packages\cx_Freeze\freezer.py", line 378, in _GetModuleFinder 
    finder.IncludePackage(name) 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 686, in IncludePackage 
    module = self._ImportModule(name, deferredImports) 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 346, in _ImportModule 
    deferredImports, namespace = namespace) 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 419, in _InternalImportModule 
    namespace = namespace) 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 436, in _InternalImportModule 
    parentModule, namespace) 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 448, in _LoadModule 
    namespace) 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 513, in _LoadPackage 
    self._LoadModule(name, fp, path, info, deferredImports, parent) 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 502, in _LoadModule 
    self._ScanCode(module.code, module, deferredImports) 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 601, in _ScanCode 
    module, relativeImportIndex) 
...................................... 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 356, in _ImportModule 
    deferredImports, namespace = namespace) 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 436, in _InternalImportModule 
    parentModule, namespace) 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 502, in _LoadModule 
    self._ScanCode(module.code, module, deferredImports) 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 601, in _ScanCode 
    module, relativeImportIndex) 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 356, in _ImportModule 
    deferredImports, namespace = namespace) 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 436, in _InternalImportModule 
    parentModule, namespace) 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 449, in _LoadModule 
    module = self._AddModule(name) 
    File "C:\python27\lib\site-packages\cx_Freeze\finder.py", line 213, in _AddModule 
    module = self._modules[name] = Module(name) 
RuntimeError: maximum recursion depth exceeded while calling a Python object 

Aucune idée de ce qui crée le bogue. Je n'ai ajouté aucun nouveau module et j'ai juste corrigé quelques erreurs dans mon programme. J'ai la version la plus récente de pip et setuptools. Est-ce que quelqu'un sait ce que cette erreur signifie?

Si vous voulez voir le code, il est ici: https://github.com/vlegoff/cocomud/blob/master/src/setup.py

Merci à l'avance!

EDIT: Il s'est avéré que tout le problème était dû au module d'analyse (pypi.python.org/pypi/parse), bien qu'il ne soit pas inclus dans le projet que j'essayais de geler. Je l'ai supprimé avec pip désinstaller et cela a fonctionné quand j'ai essayé de geler mon projet. Je ne sais pas pourquoi, je l'ai fait parce que je me souviens avoir installé deux nouveaux paquets pour les essayer.

Répondre

0

Il s'est avéré que tout le problème était dû au module d'analyse (pypi.python.org/pypi/parse), bien qu'il ne soit pas inclus dans le projet que j'essayais de geler. Je l'ai supprimé avec pip désinstaller et cela a fonctionné quand j'ai essayé de geler mon projet. Je ne sais pas pourquoi, je l'ai fait parce que je me souviens avoir installé deux nouveaux paquets pour les essayer.

0

Cela semble étrange. Je crois que cela pourrait être lié à un bug dans cx_freeze. Si vous lisez les personnes visées par ce lien: https://bitbucket.org/anthony_tuininga/cx_freeze/issues/184/importing-pyqtgraph-causes-recursion-limit

Ils semblent avoir un problème avec pyqtgraph, mais aussi avec urllib, que vous utilisez dans votre projet (et le bug ne pas encore semble fixe). Donc, je suggère à d'exclure cela de votre projet et de vérifier si cela fonctionne mieux. Peut-être, vous pouvez aussi essayer une autre version de cx_freeze, ou en spécifiant les bibliothèques importées d'une autre manière, par exemple, par modules reliant manuellement en utilisant cette syntaxe:

Buildoptions=dict(
    compressed=True, 
    includes=["moduletoinclude"], 
    path=sys.path + ["Lib"] 
) 

Avoir une belle journée

+0

Merci pour votre réponse. Il s'est avéré que tout le problème était à cause du module d'analyse (https://pypi.python.org/pypi/parse), bien qu'il ne soit pas inclus dans le projet que j'essayais de geler. Je l'ai supprimé avec pip désinstaller et cela a fonctionné quand j'ai essayé de geler mon projet. Je ne sais pas pourquoi, je l'ai fait parce que je me souviens avoir installé deux nouveaux paquets pour les essayer. Je pourrais marquer cela comme fermé ... mais je ne suis pas contre les explications sur pourquoi analyser une telle question. –