python-3.x setuptools.扩展和ctypes模块

biswetbf  于 2022-12-15  发布在  Python
关注(0)|答案(1)|浏览(156)

我正在尝试简化ctypes python模块的安装。但是我不明白如何控制setuptools.Extension中的后缀机制。
poetry install会给出以下两种结果之一:

error: can't copy 'build\lib.win-amd64-cpython-310\libdicm.cp310-win_amd64.pyd': doesn't exist or not a regular file

error: can't copy 'build/lib.linux-i686-cpython-310/libdicm.cpython-310-x86_64-linux-gnu.so': doesn't exist or not a regular file

如何控制python名称的后缀部分?在我的例子中,我想要dicm.dlllibdicm.so.0。似乎在一些point中支持它。
我目前的setup.py的灵感来自:

我试图保留基于cmake的构建系统,但这无法使用以下位置描述的解决方案:

von4xj4u

von4xj4u1#

以下情况似乎是朝着正确的方向发展的:

class CMakeBuild(build_ext):
    def get_ext_filename(self, ext_name):
        if platform.system() == "Windows":
            return "dicm.dll"
        elif platform.system() == "Darwin":
            return "libdicm.dylib"
        else:
            return "libdicm.so.0"

    def get_export_symbols(self, ext):
        return ext.export_symbols

参考:

相关问题