为什么pystan安装这么慢?

Why is pystan installation so slow?

我有一个 python 项目,它依赖于 pystan(用于 fbprophet)。作为 CI/CD 工作流程的一部分,我正在尝试设置 jenkins 来构建图像并推送到 docker 注册表。但是pystan的pip安装超级慢。似乎在这个阶段停留了10+分钟:

Building wheels for collected packages: pystan, pymeeus
  Building wheel for pystan (setup.py): started
  Building wheel for pystan (setup.py): still running ...

每当我尝试构建图像时,Jenkins 似乎对 t2.medium 没有响应。

还有其他安装pystan的方法吗?预先下载轮子?我怎样才能弄清楚是什么让它这么慢?

我可能会从一个已经安装了 pystan 的基础 docker 图像开始?

PyStan currently provides 一些针对不同平台和 Python 版本的预编译轮,除了 Python 3.8.

我猜你可以使用 Python 3.8 吗?尝试降级到 3.7 — pip 应该安装 PyStan 而无需编译。

pip 决定不使用 prebuilt wheels 之一,因此它必须从源代码构建包。 pystan 似乎是一个包含大量 C++ 代码的大包,因此构建它可能需要一段时间。在像 t2.medium 这样具有非常有限 I/O.

的弱机器上尤其如此

您可以告诉 pip 仅使用二进制包 (wheel) 并打印更多详细信息。这可能会告诉您为什么它一开始不使用轮子。

pip install -v --only-binary pystan pystan pymeeus

不使用轮子的一个常见原因是 Python 版本不匹配。此套装只有 2.7、3.5、3.6 和 3.7 的轮子。也许您正在使用 Python 3.8。另一个常见原因是平台不匹配。这个包有 manylinux1_x86_64 但你可能正在使用 i686 或者与 manylinux1.

不兼容的发行版