当运行setup.cfg中定义的console_script入口点时,我收到以下错误。不确定为什么它会抱怨位置参数。
start-prediction-engine
Traceback (most recent call last):
File "/usr/local/bin/start-prediction-engine", line 8, in <module>
sys.exit(app())
TypeError: __call__() missing 3 required positional arguments: 'scope', 'receive', and 'send'
以下是setup.cfg文件中的内容
[options.entry_points]
console_scripts =
start-prediction-engine = prediction_engine.prediction_engine:app
在文件prediction_engine.py中
if __name__ == "__main__":
uvicorn.run("prediction_engine:app", host="0.0.0.0", port=8888, reload=True, log_level="info")
1条答案
按热度按时间fjaof16o1#
我也掉进了同样的陷阱。
问题是您试图将控制台脚本注册到
app
对象(我假设它是一个FastAPI应用程序示例)。控制台脚本必须注册到函数。有关详细信息,请参阅此处的介绍。
要解决此问题,您只需创建一个运行应用的函数:
如果总是从控制台脚本运行,则不必添加
if __name__ == "__main__":
部分,但这也允许您通过执行以下操作来运行它:最后,您需要将setup.cfg中的console_script条目指向
main()
函数:顺便说一句你得到的错误
是当您尝试调用FastAPI
app
示例(即app()
)时发生的情况,这是生成的可执行文件所做的事情。