无法在heroku中安装PyGObject

问题描述

昨天我一直在努力在Heroku上的python项目中安装PyGObject,但是没有运气。

我也制作了一个空的Heroku应用程序,但是我也无法在其中安装它。 (从heroku bash内部或要求文件中使用pip进行尝试,总是出现相同的错误https://pastebin.com/RcJvC9MJ

我也尝试过通过apt buildpack安装它,但是似乎没有安装。我的apt文件包含来自pygobject getting started python3-gi python3-gi-cairo gir1.2-gtk-3.0的软件包。在构建阶段,它们似乎可以很好地安装,但应用程序看不到pygobject。

尝试通过pip安装时,出现以下错误https://pastebin.com/RcJvC9MJ。我尝试手动安装pkg-config(通过将其添加到Aptfile中),但是找不到另一个软件包(https://pastebin.com/SuVR25Ei)。然后,我重复了此过程(通过将新程序包添加到Aptfile中)。我花了一些时间向aptfile添加更多软件包,现在它有约300个软件包(使用apt依赖项生成),但是还是没有运气。 (每次都需要安装一些软件包)

我也曾尝试删除'〜/ .cache / pip',就像在here中一样,但是它不起作用。

我也尝试使用各种python / pip版本。

有人对如何使这项工作有任何线索吗?

解决方法

我以前在heroku上遇到过类似的问题

sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0似乎是安装PyGObject的建议方法。

该解决方案最有可能行得通,但是如果这也没有用,我的最佳建议是使用Docker。

创建一个heroku.yml文件和一个Dockerfile。 该heroku.yml文件可以用作示例。

如果使用 heroku CLI ,则可以运行heroku stack:set container将堆栈更改为Docker容器。

我还建议让heroku使用heroku.yml文件中的规范来构建映像,而不是将映像推送到容器注册表中。

我希望这会有所帮助。