【发布时间】:2014-02-18 13:47:30
【问题描述】:
我正在编写一个 C++ 库,可以使用 SWIG-Python 接口从 C++ 和 Python 调用它。我想在库中创建一些函数,以便在 Python 中使用它们时返回 numpy 数组。
SWIG 文档 [1] 说位于 numpy/docs/swig 下的 numpy.i 可用于此目的。但是我在以下系统上找不到这个目录。
- Scientific Linux 6.4(RHEL 6.4 克隆)+ Python 2.6 + NumPy 1.4(通过
yum安装) - OS X Mavericks + Python 2.7 + NumPy 1.8(来自
easy_install) - OS X Mavericks + Python 2.7 + NumPy 1.8(由源代码
python setup.py install构建)
如果我从 NumPy 站点获取 .tar.gz 源代码,则在 numpy-1.8.0/doc/swig 下存在 numpy.i。但是这个文件在python setup.py install执行时不会自动安装。
所以我想知道在我的系统上安装numpy.i 的最佳或推荐方式是什么。
当我将此库分发给我的同事时,将numpy.i 放入我的代码中可能是一个简单的解决方案。但我担心版本与他们的 NumPy 不匹配。
[1]http://docs.scipy.org/doc/numpy/reference/swig.interface-file.html
【问题讨论】:
-
您确定要 SWIG 而不是更新的、更 Pythonic 的 Cython 吗? (只是问。)
-
@larsmans 我和我的同事一直在使用这个基于 SWIG 的库,因此使用 Cython 不是我的选择。
-
@larsmans 此外,我们的最终产品将用于 C/C++ 以最大限度地提高其速度。 Python 目前仅用于快速测试目的。
-
我会购买第一个原因,但为了设置快速测试,Cython 的 IME 比 SWIG 容易得多 :)