我的 pyx 依赖于本机库
我pyximport.install()
该怎么办?pyxinstall 中的自动构建不知道与本机库链接,因此构建失败......
您还可以使用 .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"])
在执行 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 方法!