已安装且路径在sys.path的cubature模块报ModuleNotFoundError的解决方法
cubature和vegas包的ModuleNotFoundError问题 针对你遇到的No module named 'cubature._cubature'(以及vegas的类似错误),这通常是因为包的C扩展模块没有正确编译或安装,以下是具体解决步骤:
卸载现有问题包
先清理已安装的损坏包:pip uninstall -y cubature vegas安装编译依赖(仅Windows用户)
这两个包依赖C编译环境,Windows下需要安装Visual Studio Build Tools(勾选"Desktop development with C++"组件),安装后重启终端再进行后续操作。重新编译安装包
用强制编译的方式重新安装,避免使用预编译的二进制包:pip install --no-binary :all: cubature vegas备选方案:用conda安装
如果编译依然失败,试试用conda安装预编译好的适配版本:conda install -c conda-forge cubature vegas检查Python版本兼容性
确认你使用的Python 3.11是否被包支持。如果当前安装的cubature版本(0.17.2)不兼容3.11,可以尝试升级到最新版本:pip install --upgrade cubature vegas或者暂时降级Python到3.10版本(该版本对这类科学计算包的兼容性更成熟)。
手动验证模块文件
进入包的安装目录~\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\cubature,检查是否存在类似_cubature.cp311-win_amd64.pyd的文件(Windows)或_cubature.so(Linux/macOS)。如果没有,说明编译过程出错,需检查编译环境是否配置正确。
内容的提问来源于stack exchange,提问作者Matrix23

