我的pyx依赖于本地库
我怎么能pyximport.install()
呢? pyxinstall中的自动构建不知道是否与本机库链接,因此构建失败...
答案 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方法!