【问题标题】:pyinstaller and matplotlib gets maximum recursion depth exceededpyinstaller 和 matplotlib 超出最大递归深度
【发布时间】:2015-08-21 00:41:09
【问题描述】:

这是我正在使用的:

  • Python 3.4.3 windows 分发版“Anaconda 2.2.0(64 位)”。
  • Matplotlib 1.4.3 版
  • Numpy 1.6 版
  • Pyinstaller 版本 3.0.dev0-py3.4

当我尝试制作生成 matplotlib 图形的 python 文件的可执行文件时,它会发出“超出最大递归深度”。我要编译的代码是:

import matplotlib.pyplot as plt

x = [0, 1, 2, 3, 4]
y = [0, 1, 4, 9, 16]

plt.plot(x, y)
plt.show()

我编译它使用:

pyinstaller -F plottest.py

但我收到以下错误:

...
File "C:\Anaconda3\lib\ast.py", line 245, in visit
  return visitor(node)
File "C:\Anaconda3\lib\ast.py", line 255, in generic_visit
  self.visit(value)
File "C:\Anaconda3\lib\ast.py", line 245, in visit
  return visitor(node)
File "C:\Anaconda3\lib\ast.py", line 249, in generic_visit
  for field, value in iter_fields(node):
RuntimeError: maximum recursion depth exceeded

完整的回溯位于此处:http://pastebin.com/3b62W1Lb

【问题讨论】:

  • 感谢您的回复。刚刚检查了units.py文件,你提到的错误已经在我的版本中修复(matplotlib 1.4.3)。
  • 调用栈的顶部是什么?
  • 我添加了完整的回溯:pastebin.com/3b62W1Lb

标签: python recursion matplotlib anaconda pyinstaller


【解决方案1】:

创建一个spec 文件

pyi-makespec options name.py 

通过添加到文件开头来修改此规范

import sys
sys.setrecursionlimit(5000) # or more

构建可执行文件

pyinstaller options name.spec 

【讨论】:

  • 我收到以下错误:''pyi' 未被识别为内部或外部命令、可运行程序或批处理文件。"
  • @Lupacante 看起来您没有将“pyi”添加到 PATH(环境变量)
  • “pyi-makespec”的使用在这个网页上:pyinstaller.readthedocs.io/en/v3.3.1/man/pyi-makespec.htm,我根据@KirillDolmatov修改了.sepc文件,它工作了:)
猜你喜欢
  • 1970-01-01
  • 2020-08-12
  • 2020-10-08
  • 2018-12-03
  • 2017-08-24
  • 2013-12-01
  • 1970-01-01
  • 2017-03-24
相关资源
最近更新 更多