在Heroku上安装PyICU

Installation of PyICU on Heroku

本文关键字:PyICU 安装 Heroku      更新时间:2023-10-16

有人知道如何在Heroku上安装PyICU吗?

这是我到目前为止尝试的:

  1. 创建了一个heroku-buildpack-multi应用程序。
在.buildpacks

https://github.com/ddollar/heroku-buildpack-apt
https://github.com/heroku/heroku-buildpack-python.git
在Aptfile

libicu52
libicu-dev

然后运行bash

CPATH=$CPATH/app/.apt/usr/include/x86_64-linux-gnu
pip install PyICU

并且安装得很好。

我需要一种方法在应用程序的上传阶段(推送)做到这一点。

我试着:

pip install --global-option=build_ext --global-option="-I/app/.apt/usr/lib/x86_64-linux-gnu" PyICU

并在我的主目录下创建一个.pydistutils.cfg文件作为

[build_ext]
include_dirs=/app/.apt/usr/include/x86_64-linux-gnu

在这两种情况下,GCC都无法找到头文件,但我可以看到

-I/app/.apt/usr/lib/x86_64-linux-gnu
命令行中的

标志。

使用

`gcc -print-prog-name=cc1plus` -v

查找CPATH前后搜索路径的差异=$CPATH/app/.apt/usr/include/x86_64-linux-gnu

:

#include <...> search starts here:
/app/.apt/usr/include
.
/usr/include/c++/4.8
/usr/include/x86_64-linux-gnu/c++/4.8
/usr/include/c++/4.8/backward
/usr/lib/gcc/x86_64-linux-gnu/4.8/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
/usr/include
End of search list.
:后

#include <...> search starts here:
/app/.apt/usr/include
/app/.apt/usr/include/x86_64-linux-gnu
/usr/include/c++/4.8
/usr/include/x86_64-linux-gnu/c++/4.8
/usr/include/c++/4.8/backward
/usr/lib/gcc/x86_64-linux-gnu/4.8/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
/usr/include
End of search list.

但我不是c++程序员,找不到问题所在。什么好主意吗?

这是一个工作的变通办法,直到问题得到正确的答案。

  1. 如上所示创建应用程序(使用heroku-buildpack-apt安装libicu52和libicu-dev)。

  2. 上传并输入heroku run bash

    CPATH = $ CPATH/app/.apt/usr/include/x86_64-linux-gnu

    pip install wheel

    pip wheel PyICU

这将创建一个轮子()。/app/wheelhouse.

下载该文件,将其保存在项目中的某个位置,并通过将其名称放入requirements.txt

来安装它