我正试图清理我的代码,并将models.py文件移到顶层,就像浮士德模块以外的其他模块现在将使用的那样。文件夹结构如下所示(尽管为了简化而缩减了)
App
|
├── models
| ├── models.py
|
├── kafka
| ├── agent_a.py
|
├── servers
| ├── fastapi_server.pyfastapi_server.py和agent_a.py都需要访问models.py。如果我从App目录运行服务器,它可以正常工作。但是,当我尝试运行以下代码来启动faust代理时,它也会从App目录返回一个No module named 'kafka.agent_a'错误:
C:\path\to\App> faust -A kafka.agent_a:app worker奇怪的是,当我从一个完全不同的目录运行相同的命令时,其中就有faust/kafka的内容。报告错误可能会发生什么呢?
但是还要注意,当我使用以下方法运行服务器时:
C:\path\to\App> uvicorn servers.fastapi_server:app它一点也不抱怨模块。如果我尝试使用以下方法运行faust应用程序:
C:\path\to\App> python kafka\agent_a.py worker然后,它抱怨模型不是一个模块。所以我完全搞不懂为什么一个python脚本运行正常,而另一个没有.但是它确实在不同的目录下正常运行。
我一直觉得从蟒蛇身上进口的东西太可笑了,但这件事显然更让人目瞪口呆。
发布于 2022-05-10 07:46:42
按照上面的建议重命名目录确实解决了这个问题,但是我们仍然存在一个相对导入问题,它是python问题,而不是Faust问题。但是导入问题完全可以通过使用终端命令来解决,所以我们将坚持这样做。
https://stackoverflow.com/questions/70537317
复制相似问题