安装PyMC报错

您所在的位置:网站首页 pymc安装不了 安装PyMC报错

安装PyMC报错

2024-06-26 11:38| 来源: 网络整理| 查看: 265

在使用 PyMC3 库构建一个贝叶斯模型时,我需要通过 MCMC 采样来推断这两个参数的后验分布,然后对环境配置以及系统导包安装部分进行了操作,最终解决了这个问题。

代码报错问题 源代码如下:

# 首先导入所需的库 import pymc as pm import pandas as pd import numpy as np import arviz as az import matplotlib.pyplot as plt # step 1: 生成模拟数据 true_mean = 0 true_std = 1 samples = np.random.normal(true_mean, true_std, 1000) # step 2: 使用 PyMC3 构建模型 with pm.Model() as model: # 定义先验分布 mu = pm.Normal('mu', mu=0, sigma=10) sigma = pm.HalfNormal('sigma', sigma=1) # 观测数据的似然函数 y = pm.Normal('y', mu=mu, sigma=sigma, observed=samples) # Step 3: 进行 MCMC 采样 idata = pm.sample(1000, tune=500, return_inferencedata=True)

报错: 在这里插入图片描述

原因:未安装 PyMC库包

安装命令(加上清华源速度更快哦~):

!pip install pymc -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完之后,重新运行: 在这里插入图片描述

可以看到什么库包导入有警告,这个不用管,然后继续运行,到了第三个代码块,出现了报错,报错截图和详情如下: 在这里插入图片描述

CompileError: Compilation failed (return status=1): /usr/bin/g++ -shared -g -Wno-c++11-narrowing -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -march=cascadelake -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16 -msahf -mmovbe -maes -mno-sha -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mno-sgx -mbmi2 -mno-pconfig -mno-wbnoinvd -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mrtm -mhle -mrdrnd -mf16c -mfsgsbase -mrdseed -mprfchw -madx -mfxsr -mxsave -mxsaveopt -mavx512f -mno-avx512er -mavx512cd -mno-avx512pf -mno-prefetchwt1 -mclflushopt -mxsavec -mxsaves -mavx512dq -mavx512bw -mavx512vl -mno-avx512ifma -mno-avx512vbmi -mno-avx5124fmaps -mno-avx5124vnniw -mclwb -mno-mwaitx -mno-clzero -mno-pku -mno-rdpid -mno-gfni -mno-shstk -mno-avx512vbmi2 -mavx512vnni -mno-vaes -mno-vpclmulqdq -mno-avx512bitalg -mno-avx512vpopcntdq -mno-movdiri -mno-movdir64b -mno-waitpkg -mno-cldemote -mno-ptwrite --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=36608 -mtune=cascadelake -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -m64 -fPIC -I/usr/local/lib/python3.11/dist-packages/numpy/core/include -I/usr/include/python3.11 -I/usr/local/lib/python3.11/dist-packages/pytensor/link/c/c_code -L/usr/lib/x86_64-linux-gnu -L/usr/lib -fvisibility=hidden -o /root/.pytensor/compiledir_Linux-4.19-el7.elrepo.x86_64-x86_64-with-glibc2.31-x86_64-3.11.2-64/lazylinker_ext/lazylinker_ext.so /root/.pytensor/compiledir_Linux-4.19-el7.elrepo.x86_64-x86_64-with-glibc2.31-x86_64-3.11.2-64/lazylinker_ext/mod.cpp -lpython3.11 In file included from /root/.pytensor/compiledir_Linux-4.19-el7.elrepo.x86_64-x86_64-with-glibc2.31-x86_64-3.11.2-64/lazylinker_ext/mod.cpp:1: /usr/local/lib/python3.11/dist-packages/pytensor/link/c/c_code/pytensor_mod_helper.h:4:10: fatal error: Python.h: No such file or directory 4 | #include | ^~~~~~~~~~ compilation terminated.

好,到了这个时候,我们才算遇到了真正的问题,那么首先我们翻译了一下这段话大致是什么意思。 就是说在尝试编译PyTensor(Theano的一个分支)的C代码时,编译器找不到Python.h头文件。这个头文件在Python的开发包中。然后我使用的环境是Python 3.11,所以需要安装python3.11-dev。

因为我使用的是在一个Linux系统上,可以使用以下命令来安装它:

sudo apt-get install python3.11-dev

安装完之后跑代码,结果如下: 在这里插入图片描述

以上就是PyMC模块安装过程中会遇到的一个环境问题,可能是和其他库包版本不兼容,也可能是系统中未安装Python开发包。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3