如何写作设置.py生产通用包装

2024-04-29 10:28:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我在写作设置.py对于我的small python package,它是c++工具上的python包装器,它依赖于共享库,如icu uc、boost\u program\u选项和一些自定义库。用swig构建Python包装器。我使用Extension(libraries=[...])指定要链接的库。你知道吗

我的setup.py看起来像这样:

package_name = Extension(
    name='_package_name',
    sources=['some_souces.cpp',
            'some_swig_interfaces.i'
    ],
    swig_opts=['-c++'],
    libraries=['icuuc', ...],
)
setup(
    name='package_name',
    version='0.1.0',
        ....
    ext_modules=[package_name],
    py_modules=['package_name']
)

我用python3 setup.py bdist_wheel构建这个

当我在本地构建并安装生成的文件时,它工作得很好,但是当我在带有其他版本的icu uc或其他库的计算机上使用pip3 install package_name.whl时,它会在运行时抛出ImportError: libicuuc.so.60: cannot open shared object file: No such file or directory崩溃。所以基本上,我的问题是如何构建更通用的.whl包,它不遵循库版本,而是寻找任何匹配项?你知道吗


Tags: namepy版本modulespackagelibrariessetupextension