2

我的 pyx 依赖于本机库

pyximport.install()该怎么办?pyxinstall 中的自动构建不知道与本机库链接,因此构建失败......

4

2 回答 2

5

您还可以使用 .pyxbld 文件指定构建标志。

例如,如果您尝试构建yourmodule.pyx,只需将以下yourmodule.pyxbld文件放在与 pyx 文件相同的目录中:

def make_ext(modname, pyxfilename):
    from distutils.extension import Extension
    ext = Extension(name = modname,
        sources=[pyxfilename],
        extra_compile_args=['-I/path/to/my/custom/lib'],
        extra_link_args=['-Lpath/to/my/custom/lib', '-lcustomlib'])
    return ext

def make_setup_args():
    return dict(script_args=["--verbose"])
于 2014-05-27T12:49:09.210 回答
3

在执行 pyximport.install() 之前,您仍然可以导出正确的 LDFLAGS / CFLAGS :

from os import environ
environ['CFLAGS'] = '-I/path/to/my/custom/lib'
environ['LDFLAGS'] = '-Lpath/to/my/custom/lib -lcustomlib'
import pyximport
pyximport.install()

但是,pyximport 只能在调试情况下使用。更喜欢 setup.py 方法!

于 2011-03-02T00:25:57.873 回答