【发布时间】:2020-08-12 22:12:14
【问题描述】:
我有一个使用 fastapi 作为网络界面的 python 服务。我需要制作一个可执行文件,因此我使用的是 PyInstaller。
我不断收到以下错误:
File "..../miniconda3/lib/python3.7/site-packages/PyInstaller/lib/modulegraph/modulegraph.py", line 2912, in _load_package
self._load_module(fqname, fp, buf, stuff)
File "..../miniconda3/lib/python3.7/site-packages/PyInstaller/lib/modulegraph/modulegraph.py", line 2093, in _load_module
m = self._load_package(fqname, pathname, packagepath)
RecursionError: maximum recursion depth exceeded while calling a Python object
我将import sys; sys.setrecursionlimit(50000) 添加到原始python 文件以及规范中,但仍然遇到同样的问题。
有趣的是,如果我不使用 fastapi(例如,它适用于 Flask),我不会收到该错误。看起来 PyInstaller 对 fastapi 有一些问题。
有人知道如何解决这个问题吗?
这是我的主要python函数中的代码:
from fastapi import FastAPI
import uvicorn
app = FastAPI()
if __name__ == "__main__":
uvicorn.run("main:app", host="0.0.0.0", workers=1, port=5000)
【问题讨论】:
-
您是否尝试进一步增加递归限制?如果您指定
100.000或更多,会发生什么? -
github.com/pyinstaller/pyinstaller/issues/4406 这是一个已知问题。我们正在努力修复。
标签: python pyinstaller fastapi