我的 heroku 应用程序使用了该enchant
库。当我进行部署时,我从以下位置获取此日志heroku logs
:
2022-01-14T16:12:34.373982+00:00 heroku[web.1]: Starting process with command `python main.py`
2022-01-14T16:12:36.222280+00:00 app[web.1]: Traceback (most recent call last):
2022-01-14T16:12:36.222301+00:00 app[web.1]: File "/app/main.py", line 3, in <module>
2022-01-14T16:12:36.222404+00:00 app[web.1]: import commands as c
2022-01-14T16:12:36.222406+00:00 app[web.1]: File "/app/commands.py", line 2, in <module>
2022-01-14T16:12:36.222484+00:00 app[web.1]: import enchant
2022-01-14T16:12:36.222485+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/enchant/__init__.py", line 81, in <module>
2022-01-14T16:12:36.222593+00:00 app[web.1]: from enchant import _enchant as _e
2022-01-14T16:12:36.222594+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/enchant/_enchant.py", line 157, in <module>
2022-01-14T16:12:36.222682+00:00 app[web.1]: raise ImportError(msg)
2022-01-14T16:12:36.222708+00:00 app[web.1]: ImportError: The 'enchant' C library was not found and maybe needs to be installed.
2022-01-14T16:12:36.222708+00:00 app[web.1]: See https://pyenchant.github.io/pyenchant/install.html
2022-01-14T16:12:36.222709+00:00 app[web.1]: for details
2022-01-14T16:12:36.222711+00:00 app[web.1]:
2022-01-14T16:12:36.396316+00:00 heroku[web.1]: Process exited with status 1
所以做了一些研究,我发现附魔库利用了底层Enchant C
库,它是一个基于 apt 的依赖项。所以在 heroku 中处理这个问题的正确方法是使用heroku-buildpack-apt。我使用Ubuntu Packages Search来查找 Enchant C 库的正确名称。特别是,我尝试通过将它们添加到 Aptfile 来尝试“附魔-2”、“libenchant-2-2”、“python3-附魔”。当我将更改推送到 heroku 时,我会收到日志,向我保证它正在使用heroku-community/apt
buildpack 并且正在安装我在 Aptfile 中指定的附魔库。但是,总是会发生上述相同的错误。
似乎这个问题已经在互联网上出现了几次,但由于大多数人只是选择不完全使用附魔库而没有得到解决,我可能也承认这样做。
有谁知道如何解决这个问题?