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
相关产品推荐
相关产品推荐

