如何在scikit构建的pybind11项目中添加纯Python函数并解决报错
解决scikit_build_example添加纯Python函数后无法访问的问题
你遇到的问题是因为新增的cube.py模块没有被注册到scikit_build_example包的顶层导出中,或者包配置未正确包含该文件。按以下步骤修复:
1. 调整包的初始化文件
修改src/scikit_build_example/__init__.py,将cube函数导入到包的命名空间:
# 保留原有导入_core的代码 from ._core import * # 添加导入cube函数的代码 from .cube import cube
2. 确保包配置包含新文件
检查项目的pyproject.toml(或setup.py),确保包发现配置能识别新增的Python文件:
- 如果使用
pyproject.toml,确认存在以下配置:[tool.setuptools.packages.find] where = ["src"] include = ["scikit_build_example*"] - 如果使用
setup.py,确认setup函数的参数正确:from setuptools import find_packages, setup setup( # 其他配置... packages=find_packages(where="src"), package_dir={"": "src"}, )
3. 重新安装并测试
执行命令重新安装包:
pip install .
或者用开发模式安装(方便后续修改):
pip install -e .
测试是否能正常调用:
import scikit_build_example print(scikit_build_example.cube(3)) # 输出27
内容的提问来源于stack exchange,提问作者sodiumnitrate
相关产品推荐
相关产品推荐

