【问题标题】:Heroku unable to deploy python Pandas appHeroku 无法部署 python Pandas 应用程序
【发布时间】:2021-03-28 22:01:37
【问题描述】:

伙计们。我最近编写了我的第一个 python Flask 应用程序,这是一个简单的数据处理应用程序,它具有 Pandas 库作为唯一的额外依赖项(除了 Flask 本身)。

它从在线 csv 文件中检索数据,对其进行处理并在文本中返回一些数字。 (我没有使用数据库。它从这些在线文件中获取数据并将结果返回到浏览器屏幕而不存储它。)

我在 conda 环境中构建了它,我只添加了 Pandas 和 Flask 库。它在我的本地主机上完美运行。

但现在我很难将它部署到 Heroku...

首先我使用 pip 生成了我的 Procfile 和一个 requirements.txt 文件:

pip freeze > requirements.txt

但是,当我尝试部署应用程序时,Heroku 返回一系列与“mkl”依赖项相关的错误。我不确定这些是否与熊猫有关,但它们是什么:mkl-service==2.3.0mkl_fft==1.3.0mkl_random==1.1.1

我尝试更改包的版本,选择 Heroku 建议的版本,但它不适用于 mkl-service,Heroku 似乎根本不支持。然后我只是删除了这条线并抓住了机会。我设法在没有错误消息的情况下部署了该应用程序,但是该应用程序没有运行。

我还尝试通过 conda 而不是 pip 生成我的 requirements.txr 文件。

conda list -e requirements.txt

它会生成一个带有“=”运算符而不是“==”的奇怪文件,我通过搜索/替换和删除端盖上的信息进行了纠正。这一次,它还包含了mkl==2020.2,这是一个超过 300 MB 的依赖项,它也没有让我的应用程序正常工作。

我想知道我的应用程序的问题是否与我为我的环境混合 conda 和 pip 造成的一些混乱有关。或者也许它与让熊猫在线工作有关。我想知道你们中是否有人知道出了什么问题。

【问题讨论】:

    标签: python heroku conda


    【解决方案1】:

    在尝试了几种组合之后,我设法通过创建一个 requirements.txt 来让应用程序运行,该文件只包含 gunicorn 的名称和我最初安装在本地环境中的软件包

    Flask
    pandas
    gunicorn
    

    当然,Flask 和 pandas 有它们自己的依赖项,但事实证明 Heroku 会自动安装它们,就像 pip 一样。所以,这一次,让 requirements.txt 尽可能简单就可以了。

    【讨论】:

      猜你喜欢
      • 2020-07-09
      • 2017-12-05
      • 2020-04-07
      • 2015-10-25
      • 2012-10-30
      • 2017-07-29
      • 2016-06-23
      相关资源
      最近更新 更多