4

我有一个依赖 pystan(用于 fbprophet)的 python 项目。作为 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 ...

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

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

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

4

2 回答 2

8

PyStan 目前为除 Python 3.8 之外的不同平台和 Python 版本提供了许多预编译的轮子。

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

于 2020-02-27T18:06:55.153 回答
6

pip 决定不使用其中一个预构建的轮子,因此它必须从源代码构建包。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.

于 2020-02-27T18:07:35.627 回答