【问题标题】:poetry on heroku: can't find (any!) modules after many triesheroku 上的诗歌:多次尝试后找不到(任何!)模块
【发布时间】:2020-11-30 23:49:45
【问题描述】:

我正在尝试将诗歌作为 python 虚拟环境的系统,但我以前从未将它部署到 heroku,而且我一点运气都没有。

我现在已经用 两个 不同的新鲜诗歌项目和两个不同的新鲜 git 存储库进行了尝试。我:

  1. 创建一个新鲜的诗歌项目
  2. 将其初始化为 git repo
  3. 添加所有相关库(诗歌添加烧瓶 gunicorn 等)
  4. 添加包含整个应用程序的 SINGLE 文件,并将其推送到使用来自https://elements.heroku.com/buildpacks/moneymeets/python-poetry-buildpack 的诗歌 buildpack 配置的 heroku
  5. 当我尝试直接运行文件时,我的 Procfile 是“web: python project/website.py”,我得到“ModuleNotFoundError: No module named 'flask'”(在文件的第一行导入)
  6. 当我尝试间接运行文件时(因为它可能会有所不同?)我的 Procfile 是“web: gunicorn wsgi:app”,我得到“bash: gunicorn: command not found”
  7. 我绝对确定 pyproject.toml 是最新的,并且通过使用 "heroku run重击”
  8. 我尝试过重置heroku缓存,在构建之前手动创建requirements.txt,清空,然后重新填充requirements.txt,以及其他我确定的事情。每次我都会遇到这两个错误之一。我看到的关于这个问题的所有问题都只是询问库是否在需求文件中。我的是。他们没有被看到、被发现、注意到、使用或其他什么。

我完全不知道还能做什么。经过这么多次尝试之后,唯一理智的事情似乎就是只使用 pipenv,但错误似乎如此明显,而且可能很简单,以至于让我完全发疯。

编辑(回应评论):我的文件树已经通过不同的尝试来改变,所以我尝试了一些配置。有时 Procfile 和 app 文件在同一个顶级目录中——我也尝试过在顶级有一个 runserver 脚本,并将 app 脚本放在另一个目录中。

我也尝试过拥有或不拥有本地 requirements.txt 文件,以防万一诗歌没有按预期成功创建它们,但是当在 heroku 上启动时,诗歌构建似乎确实成功构建了自己的.我在 heroku 机器上检查了那个,它包含烧瓶和 gunicorn 的行(除其他外,但这些是系统说缺少的特定两个)

【问题讨论】:

  • (a) '我绝对确定 pyproject.toml 是最新的,并通过查看构建手动验证它生成的 requirements.txt 文件包含烧瓶和 gunicorn使用“heroku run bash”' 在 heroku 服务器上的文件——你为什么同时使用 pyproject.tomlrequirements.txt? (b) 您的poetry.lock 文件是否已提交? (c) 这些文件是否在您项目的根目录中?请edit您的问题并显示您的文件结构。
  • 谢谢@Chris;在底部进行编辑作为回应。是的,poetry.lock 是 repo 的一部分,似乎已成功推送到 heroku(打开远程终端后再次手动检查)
  • 推送到heroku后,你能否进入机器并验证requirements.txt文件是否已创建?我是公开的回购协议,你可以分享一个链接吗?听起来 heroku 没有从 requirements.txt 安装任何东西.. 所以假设它不是创建的?
  • 嗨@sur.la.route 请参阅我的描述中的第7步。

标签: heroku python-poetry


【解决方案1】:

测试本地运行“poetry run flask run”。

【讨论】:

    猜你喜欢
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    • 2022-06-15
    • 1970-01-01
    • 2021-10-05
    • 2022-08-11
    • 2019-12-12
    相关资源
    最近更新 更多