代码之家  ›  专栏  ›  技术社区  ›  Will

python:pyximporting依赖于本机库的pyx

  •  2
  • Will  · 技术社区  · 14 年前

    我的PYX依赖于本地的图书馆

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

    2 回复  |  直到 10 年前
        1
  •  3
  •   tito    13 年前

    在执行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方法!

        2
  •  5
  •   Amit Moscovich    10 年前

    还可以使用.pyxbld文件指定生成标志。

    例如,如果您尝试构建 YouMeal.Pyx ,只需放置以下内容 你的模块.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"])