繁体   English   中英

Python ModuleNotFoundError:没有名为“app”的模块

[英]Python ModuleNotFoundError: No Module named 'app'

我有一个 Flask 应用程序,在我的 Windows 机器上本地运行时遇到问题。

每当我尝试在我的 venv 中运行它时,我都会收到错误ModuleNotFoundError: No Module named 'app'

我的项目层次结构如下:

├── app
│   ├────────── __init__.py
│   ├────────── v0_1
│   └────────── v0_2
├── README
├── run.py
└── tests

应用程序/初始化.py

from flask import Flask
import app.v0_1.v0_1 as V0_1
import app.v0_2.v0_2 as V0_2
import app.messages.messages as MSG

# Create a Flask Application
app = Flask(__name__)

运行.py

from app import app

if __name__ == "__main__":
    app.run(host="0.0.0.0")

.vscode/launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "python": "${config:python.pythonPath}"
        }
    ]
}

.vscode/settings.json

{
    "python.linting.flake8Enabled": false,
    "python.linting.enabled": true,
    "python.linting.pylintEnabled": true,
    "python.pythonPath": "venv\\Scripts\\python.exe"
}

每个文件夹都有自己的init .py

当我构建 Docker 文件并运行我的应用程序时,它工作正常。 当我尝试在本地运行它时,我遇到了上面提到的错误。 错误指向app/__init__.py中的这两个文件:

import app.v0_1.v0_1 as V0_1
import app.v0_2.v0_2 as V0_2

这些文件夹包含我的 API 的蓝图

这是GitHub上完整项目的链接

有人可以帮帮我吗?

它在__init__.py中。 /app/内没有模块应用程序。 唯一的模块是 v0_1 和 v0_2。 摆脱应用前缀。

import v0_1.v0_1 as V0_1
import v0_2.v0_2 as V0_2

应该

from v0_1 import v0_1 as V0_1
from v0_2 import v0_2 as V0_2

这是我的布局

[root@sri-0000-0001 sandbox]# tree
.
├── app
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── v0_1.py
│   ├── v0_1.pyc
│   ├── v0_2.py
│   └── v0_2.pyc
└── run.py

以下是文件:

运行.py

from app import app

if __name__ == "__main__":
    app.run(host="0.0.0.0")

__init__.py

from flask import Flask
from v0_1 import v0_1 as V0_1
from v0_2 import v0_2 as V0_2

# Create a Flask Application
app = Flask(__name__)

v0_1.py

v0_1=None

v0_2.py

v0_2=None

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM