为像numpy这样的库创建Python Wheels

时间:2016-03-18 00:13:28

标签: python numpy python-wheel pypiserver

我们目前正在运行我们自己的私有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

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

1 个答案:

答案 0 :(得分:0)

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

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

在Linux上,这个过程并不总是有效,因为许多二进制轮将尝试使用特定版本的OS库(.so),这些版本不同于一个分发到另一个,甚至在同一个分发中。

以下是一些进一步的参考: