2017-05-28 32 views
0

我一直在使用cxFreeze構建Python代碼一段時間,直到今天都沒有問題。不過,我不確定問題來自cxFreeze。雖然網絡上有一些RuntimeError異常,但它們並不完全匹配我獲得的內容。用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 

不知道什麼是創建錯誤。我沒有添加任何新模塊,只是修復了我的程序中的一些錯誤。我有最新版本的pip和setuptools。有誰知道這個錯誤是什麼意思?

如果你想看到的代碼,它在這裏:https://github.com/vlegoff/cocomud/blob/master/src/setup.py

提前感謝!

編輯: 事實證明,所有的煩惱都是因爲解析模塊(pypi.python.org/pypi/parse),儘管它沒有包含在我試圖凍結的項目中。我用pip卸載刪除它,它試圖凍結我的項目。不知道爲什麼,我這樣做是因爲我記得已經安裝了兩個新軟件包來試用它們。

回答

0

事實證明,所有的煩惱都是因爲解析模塊(pypi.python.org/pypi/parse),儘管它沒有包含在我試圖凍結的項目中。我用pip卸載刪除它,它試圖凍結我的項目。不知道爲什麼,我這樣做是因爲我記得已經安裝了兩個新軟件包來試用它們。

0

這看起來很奇怪。我相信它可能與cx_freeze中的錯誤有關。 如果你讀通過這個鏈接引用的人: https://bitbucket.org/anthony_tuininga/cx_freeze/issues/184/importing-pyqtgraph-causes-recursion-limit

他們似乎有pyqtgraph問題,但也與urllib的,您使用的是在您的項目(和錯誤似乎並不未定)。所以我建議從你的項目中排除這個,並檢查這個效果是否更好。也許,你也可以手動使用此語法嘗試另一種版本cx_freeze,或指定以另一種方式進口的庫,例如,中通過鏈接模塊:

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

有一個愉快的一天

+0

感謝您的回答。事實證明,所有的煩惱都是因爲解析模塊(https://pypi.python.org/pypi/parse),儘管它沒有包含在我試圖凍結的項目中。我用pip卸載刪除它,它試圖凍結我的項目。不知道爲什麼,我這樣做是因爲我記得已經安裝了兩個新軟件包來試用它們。我可以將此標記爲已關閉......但我並不反對解釋導致此問題的原因的解釋。 –