You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Skbuild Setuptools配置:如何将C++ Python绑定模块安装至site-packages

解决C++ Python绑定模块安装路径错误问题
  • 调整cmake_install_dir参数
    你的cmake_install_dir="module"配置会引导CMake将编译产物安装到site-packages/module/lib子目录,而非直接放入site-packages。解决方法是移除该参数,或者将其设置为空字符串:

    # 移除这一行,或改为cmake_install_dir=""
    # cmake_install_dir="module",
    
  • 修正Python包结构配置
    如果项目仅包含C++编译的扩展模块(无纯Python包结构),请移除packages和package_dir配置项——这两个参数针对纯Python包设计,会干扰扩展模块的安装路径:

    # 移除以下两行(无纯Python包时)
    # packages=find_packages(where="module"),
    # package_dir={"": "module"},
    
  • 检查CMakeLists.txt的安装逻辑
    确保CMakeLists.txt未硬编码安装路径,而是使用setup.py传递的前缀。例如,安装扩展模块时应写:

    install(TARGETS cytosim_extension
            LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX})
    

    如果希望模块放在子包cytosim下,可将DESTINATION设为${CMAKE_INSTALL_PREFIX}/cytosim,同时在setup.py中保留packages=["cytosim"]和对应package_dir配置。

修改后的setup.py示例

setup(
    name="cytosim",
    version=version,
    description=DOCLINES[0],
    long_description=open("README.md", encoding="utf8").read(),
    long_description_content_type="text/markdown",
    platforms=["Windows", "Linux", "Mac OS-X", "Unix"],
    keywords="simulation actin microtubule polymer",
    cmake_args=cmake_args,
    zip_safe=False,
)

内容的提问来源于stack exchange,提问作者SergeD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 12:55:16