Python: pyximporting pyx, который зависит от нативной библиотеки - PullRequest
2 голосов
/ 30 апреля 2010

Мой pyx зависит от нативной библиотеки

Как я могу pyximport.install() это? Автоматическая сборка в pyxinstall не знает, как связаться с нативной библиотекой, поэтому сборка завершается неудачей ...

Ответы [ 2 ]

5 голосов
/ 27 мая 2014

Вы также можете указать флаги сборки, используя файл .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 голосов
/ 02 марта 2011

Вы все еще можете экспортировать правильные LDFLAGS / CFLAGS перед выполнением вашего pyximport.install ():

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!

...