我有一个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.media上变得没有响应。
有没有其他方法可以安装pystan?事先下载轮子?我怎么才能弄清楚是什么让它变得如此缓慢?
我可能会从一个已经安装了pystan的基础docker镜像开始?
发布于 2020-02-28 02:06:55
除了Python3.8之外,PyStan currently provides为不同的平台和Python版本提供了许多预编译的轮子。
我能猜出你用的是Python 3.8吗?尝试降级到3.7 - pip
应该安装PyStan而不进行编译。
发布于 2020-02-28 02:07:36
pip决定不使用其中的一个prebuilt wheels,因此它必须从源代码构建包。pystan似乎是一个包含大量C++代码的大包,因此构建它可能需要一段时间。在像t2.medium
这样I/O非常有限的弱机器上尤其如此。
您可以告诉pip只使用二进制包(轮子),还可以打印更多详细信息。这可能会告诉你为什么它一开始就没有使用轮子。
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
不兼容的发行版。
https://stackoverflow.com/questions/60439104
复制相似问题