5

我们目前正在运行我们自己的私有 PyPi 服务器,并上传我们内部 Python 库的轮子以加快安装速度。

我们的许多工具都需要 numpy、scipy、pandas 等。

我们通过从源代码安装所有依赖项来为所有依赖项构建轮子,然后使用

pip wheel .

它为我们所有的依赖项输出轮子——或者我们是这么认为的。

我们发现,当我们从私有 PyPi 安装 numpy 时,它可以作为轮子使用,会发生以下情况。

>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "redacted/lib/python2.7/site-packages/numpy/__init__.py", line 199, in <module>
    from . import random
  File "redacted/site-packages/numpy/random/__init__.py", line 99, in <module>
    from .mtrand import *
ImportError: redacted/lib/python2.7/site-packages/numpy/random/mtrand.so: undefined symbol: PyFPE_jbuf

我很清楚,这些轮子没有正确创建。我不清楚的是如何解决这个问题。我们不会将这些分发给公众,仅用于我们的内部工具。

4

1 回答 1

0

我远不是车轮包装方面的专家,但这是迄今为止我对车轮制造的了解。

对于 OS X 和 Windows,您可以构建二进制轮子并使用它来部署您的软件。

在 Linux 上,此过程并不总是有效,这是因为许多二进制轮子会尝试使用特定版本的 OS 库 (.so),而这些在一个发行版之间甚至在同一个发行版中都不同。

这里有一些进一步的参考:

于 2016-03-22T07:19:08.960 回答