Python 如何以用户友好的方式分发Cython。那么?

Python 如何以用户友好的方式分发Cython。那么?,python,cython,Python,Cython,我使用Linux生成用于Python项目的.so库。这些库是动态链接的,如中所述 这需要在用户机器上重新编译,如果他不使用与我相同的操作系统。所以我的问题是,我如何简化这一点?我想我需要让Cython静态链接我的库,但我在网上找到的所有链接都不起作用 我使用python distutils生成.so。因此,一个distutils解决方案会很好,但任何其他建议也会有所帮助。我使用以下脚本: cmdclass = {} ext_modules = [] ext_modules += [

我使用Linux生成用于Python项目的.so库。这些库是动态链接的,如中所述

这需要在用户机器上重新编译,如果他不使用与我相同的操作系统。所以我的问题是,我如何简化这一点?我想我需要让Cython静态链接我的库,但我在网上找到的所有链接都不起作用

我使用python distutils生成.so。因此,一个distutils解决方案会很好,但任何其他建议也会有所帮助。我使用以下脚本:

cmdclass = {}
ext_modules = []

ext_modules += [
        Extension("signalFunctions", ["signalFunctions.pyx"],
                  include_dirs=[numpy.get_include()],
                  extra_compile_args=["-static", "-static-libgcc"]),
    ]
    cmdclass.update({'build_ext': build_ext})


setup(
    name='AutomaticHacker',
    cmdclass=cmdclass,
    ext_modules=ext_modules,
)

我已经尝试了
extra\u-link\u-args=[“fPIC”]
extra\u-link\u-args=[“-static”“-static libgcc”]
但没有成功。

为什么要尝试静态链接库?对于不使用与您相同操作系统的人来说,它仍然不起作用。另外,如果你想从Python中导入一些东西,它仍然必须是一个
.so
,即使它的所有依赖项都是静态链接的。如果你只想不需要Cython作为构建需求(因此用户只需要Python和C编译器),我相信您可以将.pyx文件编译成.c文件并分发这些文件。但我想我从来没有见过这样的项目。谢谢。我知道,我还可以分发一个.c文件供用户编译。但是,我想发布一种独立的应用程序,其中唯一的要求是安装一个python环境。C代码必须与它们的Python构建相链接。如果他们有不同的操作系统,或者甚至是不同构建的libpython,那么您无法为他们提供任何可以工作的二进制文件。(您可以构建一个完整的捆绑应用程序,它甚至不需要Python构建,只依赖于特定的最低LSB/Windows/OS X/等版本,但这完全是另一回事。)这听起来非常有趣。你能给我一个关于这个的教程或类似的链接吗?