使用skbuild+setuptools安装Python扩展模块遇路径错误求助
问题分析与解决步骤
先纠正pip安装命令的错误:你执行
pip3 install dist是错误用法,pip会把dist目录当作源码包目录尝试重新构建,而非使用你已经编译好的产物。正确做法是直接安装dist目录里的预编译wheel文件或源码包:# 优先安装wheel文件,避免重新编译 pip3 install dist/cytosim-0.0.0-py3-none-any.whl # 或者安装源码包 pip3 install dist/cytosim-0.0.0.tar.gz检查setup.py配置:因为你用skbuild管理CMake构建,要确保setup.py里没有多余的
ext_modules配置(普通setuptools用来声明C扩展的部分)。skbuild会通过CMake处理编译逻辑,额外声明扩展模块可能导致pip尝试用gcc编译不存在的文件。排查sdist打包内容:解压
dist/cytosim-0.0.0.tar.gz,检查里面是否包含错误的构建脚本(比如自动生成的指向src/py3/dist.c的配置)。可以在项目根目录创建MANIFEST.in文件,排除不必要的文件,避免错误内容被打包:exclude _skbuild/ exclude src/py3/ prune build/之后重新执行
sdist bdist_wheel生成干净的包。验证CMake构建正确性:既然直接用CMake能编译出
.so,说明核心绑定逻辑没问题,问题出在skbuild打包或pip安装环节。可以先卸载已安装的cytosim,再安装预编译的wheel文件,确认是否能正常使用。
内容的提问来源于stack exchange,提问作者SergeD
相关产品推荐
相关产品推荐

