【问题标题】:Failing to deploy flask tesseract app to heroku无法将烧瓶 tesseract 应用程序部署到 heroku
【发布时间】:2022-05-10 21:38:20
【问题描述】:

我想将我的 tesseract 应用程序部署到 heroku,但它总是“无法找到包 tesseract-ocr”并且无法部署它。

我在关注this 教程和this

我的步骤:

  1. 将 pytesseract.pytesseract.tesseract_cmd = ‘/app/.apt/usr/bin/tesseract’ 写入我的应用程序代码
  2. 获取 requirements.txt、procfile 和 Aptfile,包括 tesseract-ocr tesseract-ocr-eng​​li>
  3. 添加Buildpack https://github.com/heroku/heroku-buildpack-apt(我是直接在设置中添加的),我也试过这个buildpack:https://github.com/matteotiziano/heroku-buildpack-tesseract
  4. 添加 Tesseract 配置文件:TESSDATA_PREFIX = ./.apt/usr/share/tesseract-ocr/4.00/tessdata (这里应该是 tesseract 的正确路径,但 'find -iname tessdata' 对我不起作用。我直接在 heroku 网站上使用运行控制台,我也在我的电脑上尝试过heroku run bash -a myappname 也没有显示任何内容。) 我在“Key”下添加了“TESSDATA_PREFIX”,在“Value”下添加了“./.apt/usr/share/tesseract-ocr/4.00/tessdata”。另外尝试了:/app/.apt/usr/share/tesseract-ocr/4.00/tessdata 和 /app/.apt/usr/share/tesseract-ocr/tessdata)
  5. 然后我再次部署它(我在添加 Buildpack 等之前已经部署了它)

这是我得到的错误:

E: Unable to locate package tesseract-ocr
 !     Push rejected, failed to compile Apt app.
 !     Push failed

非常感谢您的帮助!

更多信息:我的应用在 postman 本地运行,所以我认为这不是编码问题。

【问题讨论】:

    标签: flask heroku tesseract python-tesseract


    【解决方案1】:

    和你一样,在过去的三天里,我花了很多时间在互联网上搜寻这个神秘谜题的线索。发现问题是由于 bug 与 Heroku 的 buildpack 相关的不同操作系统使用的不同换行符 - Windows 使用 CRLF 而 Linux 使用 LF(我在 Windows 上使用 WSL,我认为这个问题也适用于你视窗)。每当我使用单个包时,构建都可以工作,但每当我添加其他包时,Heroku 都会告诉我它无法找到它们。如果您使用的是 Windows,则需要一种方法来确保您具有正确的换行符以防止这种情况发生(我在 WSL 中使用了 vim)。

    对于像我一样使用 WSL 的任何人,还有另一个 issue git 会将任何换行符转换为 CRLF,所以即使我使用 LF 换行符进行编辑,我最终还是遇到了 Heroku 无法找到的相同错误所需的包。按照建议,使用 git config --global core.autocrlf false 禁用此功能,然后确保您的文件仅使用 LF 换行符,然后推送。

    我很震惊,这些问题已经持续了这么久,我无法找到详细说明此修复的单个线程,但希望这对您有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 2014-11-13
      • 2020-08-22
      相关资源
      最近更新 更多