Python:pyximport导入依赖本地库的pyx文件
我的pyx文件依赖一个本地库
我该如何使用 pyximport.install()
来处理它呢?因为pyxinstall的自动构建不知道要和这个本地库连接,所以构建失败了……
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"])
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 的方法!