0

我正在尝试清理我的代码并将 models.py 文件移到顶层,因为除了浮士德之外的其他模块现在将使用它。文件夹结构如下(尽管为简单起见被删减)

App
|
├── models
|   ├── models.py
|
├── kafka
|   ├── agent_a.py
|
├── servers
|   ├── fastapi_server.py

fastapi_server.py需要agent_a.py访问models.py。如果我从App目录运行服务器,它可以正常工作。但是,当我尝试运行以下命令以从 App 目录启动 faust 代理时,它会返回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脚本运行正常而另一个没有运行完全感到困惑......但它确实在不同的目录中正常运行

我总是发现 python 中的导入很荒谬,让我无法理解,但这个更令人震惊。

4

0 回答 0