前提:
电脑win10
我原先已经装了python3.6,numpy,matplotlib,pandas,pip,ipython;没有安装Anaconda,如果安装过了,直接看步骤:fbprophet 的安装:
https://blog.csdn.net/u012247418/article/details/82314129
命令行:
pip install pystan
执行:
pip install fbprophet
【若报错: error: command ‘C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\link.exe’ failed with exit status 1120
查了下,说是C++编译器没装好
以下是针对fbprophet无法正确安装的解决步骤,如果上面已经成功安装,那么恭喜,直接查看步骤“使用fbprophet”
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
python3.6版本的 Anaconda3-5.0.1-Windows-x86_64.exe
双击exe安装,配置环境变量
开始菜单栏打开Anaconda Prompt,
如果正常的话,执行:
conda info
会出现信息,如果需要,更新conda,执行:
conda update conda
创建环境,建议创建,不然可能各种报错(比如 ModuleNotFoundError: No module named ‘pystan._api’ 这种百度都百度不到的问题,不要问我为什么会知道):
conda create -n fb_env python=3.6
创建了环境的话,就需要进入,没创建就不执行(这里可能会让关闭窗口重新进入,那就关掉后再打开执行):
conda activate fb_env
fbprophet 的安装:
在{Anaconda的安装路径(如果创建了环境的话,就要到环境的目录下)}\ Lib \ distutils中检查是否有distutils.cfg文件,如果没有新建txt文档就创建一个,改后缀名为.cfg;
有的话就确保里面的内容为:
[build]
compiler=mingw32
给mingw配置环境变量:
查到gcc.exe所在文件夹的位置,添加到环境变量里
执行以下三个命令看看是否给出版本信息,判断是否添加成功:
gcc -dumpversion
ld -v
dllwrap -version
执行:
conda install numpy cython -c conda-forgeconda install numpy cython -c conda-forge
执行:
conda install matplotlib scipy pandas -c conda-forge
执行:
pip install pystan
或者
conda install pystan -c conda-forge
以上安装过的就不用装了,执行了也会提示已经存在
执行:
pip install fbprophet
或者执行:
conda install -c conda-forge fbprophet
若安装失败,直接到github下载:https://github.com/facebook/prophet
然后进入prophet-master\python\目录(D:\workspace是我的存放路径)
cd /d D:\workspace\prophet-master\prophet-master\python
下使用
pip install -e .
或者
python setup.py install
pycharm中,File-settings-Project:workspace-Project Interpreter
将含有fbprophet的解释器添加进去
点击Ok后,大概需要20分钟的时间,才完成创建,可以看右下角的进度情况
完成后,就可以导入包
我执行之后报警告:
WARNING:pystan:Something went wrong while unpickling the StanModel. Consider recompiling.
调用fit时报错:AttributeError: ‘StanModel’ object has no attribute 'fit_class’
搜了一下,让我把fbprophet版本回退,原先是fbprophet (0.4.post2),在Anaconda Prompt中,C:\Users\ALIENWARE\Anaconda3\Scripts目录下执行:
pip install --upgrade --force-reinstall --no-cache fbprophet==0.3.post2
但是报错了: UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xa3 in position 45: invalid start byte
回退不行,又搜了一下,说是先检查下pystan是否成功导入,在pyhon里运行这个,如果正常的话会输出0点几的小数
import pystan
model_code = 'parameters {real y;} model {y ~ normal(0,1);}'
model = pystan.StanModel(model_code=model_code) # this will take a minute
y = model.sampling(n_jobs=1).extract()['y']
y.mean() # should be close to 0
报错:TypeError: ‘>=’ not supported between instances of ‘NoneType’ and 'str’
搜了一下,说是官方对{Anaconda路径 或 python路径,如果添加了环境就进入到环境文件夹内}\Lib\distutils\cygwinccompiler.py添加了补丁,https://bugs.python.org/file40608/patch.diff 在get_msvcr()方法里添加了几行代码(注意,不要直接复制黏贴他的代码,会报错,要自己手动输入)
如果还不行,重启pycham
然后运行,又报错:ValueError: Unknown MS Compiler version 1916
看官方补丁,msc_ver大于1900的都不行,但是之前是可以,注释里说
“msvcr140.dll no longer exists” http://blogs.msdn.com/b/vcblog/archive/2014/06/03/visual-studio-14-ctp.aspx
以后Visual C++ 14.0不再有msvcr140.dll,但是我想了想,我是之前下载的Visual Studio 2015,也就是说我之前的版本是有msvcr140.dll?所以解开注释试了下,测试代码成功运行
再调用fbprophet的fit,成功
整个流程花了我大概1天10个小时,可能走大数据这条路,就是如此的艰难吧!!