浮士德不喜欢相对路径
Faust doesn't like relative path
我正在尝试清理我的代码并将 models.py 文件移动到顶层,因为除 faust 模块之外的其他模块现在将使用它。
文件夹结构如下(尽管为简单起见被删减)
App
|
├── models
| ├── models.py
|
├── kafka
| ├── agent_a.py
|
├── servers
| ├── fastapi_server.py
fastapi_server.py
和 agent_a.py
都需要访问 models.py
。如果我 运行 来自 App
目录的服务器它工作正常。但是,当我尝试 运行 以下命令也从 App 目录启动浮士德代理时,它 returns 一个 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
它根本不抱怨这个模块。如果我尝试 运行 浮士德应用程序使用:
C:\path\to\App> python kafka\agent_a.py worker
然后它抱怨模型不是模块。所以我完全不明白为什么一个 python 脚本 运行 可以,而另一个却不行......但它 运行 通常在不同的目录
我一直觉得 python 中的进口商品让我无法理解,但这个明显更令人震惊。
按照上面的建议重命名目录确实解决了问题,但我们仍然有一个相对导入问题,这是一个 python 问题,而不是 Faust 问题。但是导入问题完全可以通过使用终端命令来解决,所以我们将坚持下去。
我正在尝试清理我的代码并将 models.py 文件移动到顶层,因为除 faust 模块之外的其他模块现在将使用它。 文件夹结构如下(尽管为简单起见被删减)
App
|
├── models
| ├── models.py
|
├── kafka
| ├── agent_a.py
|
├── servers
| ├── fastapi_server.py
fastapi_server.py
和 agent_a.py
都需要访问 models.py
。如果我 运行 来自 App
目录的服务器它工作正常。但是,当我尝试 运行 以下命令也从 App 目录启动浮士德代理时,它 returns 一个 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
它根本不抱怨这个模块。如果我尝试 运行 浮士德应用程序使用:
C:\path\to\App> python kafka\agent_a.py worker
然后它抱怨模型不是模块。所以我完全不明白为什么一个 python 脚本 运行 可以,而另一个却不行......但它 运行 通常在不同的目录
我一直觉得 python 中的进口商品让我无法理解,但这个明显更令人震惊。
按照上面的建议重命名目录确实解决了问题,但我们仍然有一个相对导入问题,这是一个 python 问题,而不是 Faust 问题。但是导入问题完全可以通过使用终端命令来解决,所以我们将坚持下去。