Python:pyximporting一个依赖于本机库的pyx

时间:2010-04-29 23:28:28

标签: python cython

我的pyx依赖于本地库

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

2 个答案:

答案 0 :(得分: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"])

答案 1 :(得分: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方法!