【问题标题】:Python Flask Heroku Cannot import modulePython Flask Heroku 无法导入模块
【发布时间】:2017-09-16 04:21:48
【问题描述】:

我收到以下错误

"ModuleNotFoundError: No module named 'class1'"

结构

- hello-world
   - src
       - __init__
       - main
       - class1
- Procfile

main1 文件如下所示:

from class1 import G

APP = Flask(__name__)
@APP.route('/', methods=['GET'])
def index() -> str:
    return 'We are alive'

简介:

web: gunicorn src.main:app --log-file -

heroku 日志向我们显示以下错误:

ModuleNotFoundError: 没有名为“class1”的模块

我不知道我做错了什么。我正在使用pipenv安装依赖项,它包含gunicorn

【问题讨论】:

  • 你的 PYTHONPATH 好像是hello-world,所以应该是from src.class1 import G
  • 你需要把你的procfile改成web: gunicorn src.main:APP --log-file -

标签: python heroku flask


【解决方案1】:

您必须使用以下方法导入类:

from .class1 import G

不要忘记点。当你构建一个包时,你必须使用这个相对路径来告诉你的类是在哪里写的。这称为包内引用。

查看对应的doc

【讨论】:

  • 它解决了我在 HEROKU @Y0da 上的问题,但在本地它说没有模块 __main__.class1,因为 src 不是一个包。我在本地运行命令pipenv run python3 src/slack_service.py
  • 感谢您的帮助,它与同一个问题有关,因为它无法解决我的问题。我不明白你的意思,我没有导入初始化文件。
  • @user8569455 那么错误是什么?应该修复导入错误。
  • ModuleNotFoundError: No module named '__main__.class1'; '__main__' is not a package
【解决方案2】:

应该是这样的

from hello-world.src.class1 import G

首先将您的文件夹重命名为 hello-world.. Python 无法识别类名或文件夹名的操作数。它会返回一个错误

【讨论】:

    猜你喜欢
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多