Python 使用setuptools生成错误:RuntimeError

Python 使用setuptools生成错误:RuntimeError,python,pip,setuptools,cx-freeze,Python,Pip,Setuptools,Cx Freeze,我使用cxFreeze构建Python代码已经有一段时间了,直到今天都没有问题。不过,我不确定问题是否来自cxFreeze。虽然web上存在一些RuntimeError异常,但它们与我获得的不完全匹配 $ python2.7 setup.py build running build running build_exe Traceback (most recent call last): File "setup.py", line 79, in <module> execu

我使用cxFreeze构建Python代码已经有一段时间了,直到今天都没有问题。不过,我不确定问题是否来自cxFreeze。虽然web上存在一些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
$python2.7 setup.py build
运行构建
运行build_exe
回溯(最近一次呼叫最后一次):
文件“setup.py”,第79行,在
可执行文件=[客户端、更新程序、dbg_更新程序]
文件“C:\python27\lib\site packages\cx\u Freeze\dist.py”,第362行,在安装程序中
distutils.core.setup(**attrs)
文件“C:\python27\lib\distutils\core.py”,第151行,在安装程序中
dist.run_命令()
文件“C:\python27\lib\distutils\dist.py”,第953行,在run\u命令中
self.run_命令(cmd)
文件“C:\python27\lib\distutils\dist.py”,第972行,在run\u命令中
cmd_obj.run()
文件“C:\python27\lib\distutils\command\build.py”,第127行,正在运行
self.run_命令(cmd_名称)
文件“C:\python27\lib\distutils\cmd.py”,第326行,在run\u命令中
self.distribution.run_命令(command)
文件“C:\python27\lib\distutils\dist.py”,第972行,在run\u命令中
cmd_obj.run()
文件“C:\python27\lib\site packages\cx\u Freeze\dist.py”,第232行,正在运行
冷冻室
文件“C:\python27\lib\site packages\cx\u Freeze\freezer.py”,第619行,冻结
self.finder=self.\u GetModuleFinder()
文件“C:\python27\lib\site packages\cx\u Freeze\freezer.py”,第378行,在_GetModuleFinder中
finder.IncludePackage(名称)
IncludePackage中第686行的文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”
模块=自身。\u导入模块(名称、延迟导入)
文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”,第346行,在导入模块中
延迟导入,命名空间=命名空间)
文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”,第419行,在\u InternalImportModule中
名称空间=名称空间)
文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”,第436行,在\u InternalImportModule中
父模块(名称空间)
文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”,第448行,在加载模块中
名称空间)
文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”,第513行,在\u LoadPackage中
self.\u加载模块(名称、fp、路径、信息、延迟导入、父级)
文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”,第502行,在加载模块中
自身扫描代码(module.code、module、deferredImports)
文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”,第601行,在扫描代码中
模块,相对性(端口索引)
......................................
文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”,第356行,在导入模块中
延迟导入,命名空间=命名空间)
文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”,第436行,在\u InternalImportModule中
父模块(名称空间)
文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”,第502行,在加载模块中
自身扫描代码(module.code、module、deferredImports)
文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”,第601行,在扫描代码中
模块,相对性(端口索引)
文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”,第356行,在导入模块中
延迟导入,命名空间=命名空间)
文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”,第436行,在\u InternalImportModule中
父模块(名称空间)
文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”,第449行,在加载模块中
模块=自身。\u添加模块(名称)
文件“C:\python27\lib\site packages\cx\u Freeze\finder.py”,第213行,在\u AddModule中
模块=自身。_模块[名称]=模块(名称)
RuntimeError:调用Python对象时超出了最大递归深度
不知道是什么造成了这个bug。我没有添加任何新模块,只是修复了程序中的一些错误。我有最新版本的pip和setuptools。有人知道这个错误是什么意思吗

如果您想查看代码,请访问:

提前谢谢

编辑:
事实证明,所有的麻烦都是因为parse模块(pypi.python.org/pypi/parse),尽管它没有包含在我试图冻结的项目中。我用pip卸载删除了它,当我试图冻结我的项目时,它工作了。不知道为什么,我这么做是因为我记得我安装了两个新软件包来试用。

这看起来很奇怪。我相信这可能与cx_freeze中的一个bug有关。 如果您阅读了此链接提及的人员:

他们似乎对pyqtgraph有问题,但对您在项目中使用的urllib也有问题(而且这个错误似乎还没有修复)。因此,我建议将其从您的项目中排除,并检查其效果是否更好。也许,您也可以尝试另一个版本的cx\U freeze,或者以另一种方式指定导入的库,例如,通过使用以下语法手动链接模块

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

祝您愉快

事实证明,所有的麻烦都是由于parse模块(pypi.python.org/pypi/parse)引起的,尽管它没有包含在我试图冻结的项目中。我用pip卸载删除了它,当我试图冻结我的项目时,它工作了。不知道为什么,我这么做是因为我记得我安装了两个新软件包来试用。

谢谢你的回答。事实证明,所有的麻烦都是因为parse模块(),尽管它没有包含在我试图冻结的项目中。我用pip卸载删除了它,当我试图冻结我的项目时,它工作了。不知道为什么,我这么做是因为我记得我安装了两个新软件包来试用它们。我可以将此标记为已关闭。。。但我并不反对解释为什么parse会导致这样的问题。