pyinstaller和matplotlib获得超出的最大递归深度

时间:2015-06-05 23:07:51

标签: python recursion matplotlib anaconda pyinstaller

这是我正在使用的内容:

  • 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

1 个答案:

答案 0 :(得分:1)

创建spec文件

pyi-makespec options name.py 

通过添加到文件开头

来修改此规范
import sys
sys.setrecursionlimit(5000) # or more

构建可执行文件

pyinstaller options name.spec