0

有人知道如何在 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

然后 heroku 运行 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++ 程序员,找不到问题所在。有任何想法吗?

4

1 回答 1

1

在正确回答问题之前,这是一种可行的解决方法。

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

  2. 上传并输入heroku run bash

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

    点安装轮

    点轮 PyICU

这将在 /app/wheelhouse 中创建一个轮子(.whl 文件)。

下载文件,将其保存在项目中的某个位置,然后通过将其名称放在您的 requirements.txt 中来安装它

于 2015-08-15T08:24:30.163 回答