第一章 win 7装prophet之泪

2018-09-19  本文已影响0人  梦到了猪

环境:win 7、python 3.6、VS2015
目标:装fbprophet

  根据prophet的指导(自己上网查看),之前装依赖都无比顺利。在最终装prophet(pip install prophet)就懵B了。
  开始看console 的打印信息,是pystan扩展包报link.exe不合适之类的。傻了(对python的理解不够)。再次回到pystan的安装指导中认真看。发现pystan不支持MS的C++编译器。有眉目就好。搜了下度娘,发现可以安装 minGW (自己的机子几位,自己看),环境变量path自己设置。
  可是如何指定python使用minGW编译器呢?继续度娘,得到答案,在python 下 distutils目录下创建distutils.cfg文件,并配置内容为:

[build]
compiler = mingw32

  继续尝试。啪啪啪,继续打脸。
报错:
Unknown MS Compiler version 1900
(这里也是很有意思的一个点。如果当时处理好,估计可以提前睡觉,就不需要折腾到凌晨3点。程序员需要执着精神,gogogo)
  看到MS给我的第一感觉是 distutils没有设置好。blablabla开始折腾啦。

苦逼的尝试

  苦逼的试了很久,都失败了。始终都在怀疑编译器设置是否成功。
  由于一直抱着那个想当然,在看cygwinccompiler.py时发现有打印一些日志信息。能够答应出编译器信息。
  blablabla又开始新一轮的尝试,其中曲折与心酸不表。最终在Distutils的手册(2.9 Debugging the setup script)中看到。在编译时设置环境变量:DISTUTILS_DEBUG 。只要不是为空,就开启debug模式。
  这里是个好的知识点。如何设置环境变量?有时候东西学多了,容易混。之前尝试python setup.py install DISTUTILS_DEBUG=1 。是不是很熟悉。不好意思,错了。什么叫环境变量。环境变量是这样设置的 set DISTUTILS_DEBUG=1。到这小功告成,日志出来了。指定的是g++在编辑,没有错。看来分析错了。
没有办法了,就度娘、谷歌下(直接搜:Unknown MS Compiler version 1900),终于看到一篇好文。里面描述了两点重点信息:
cygwinccompiler.py有bug,不支持VS2015,需要直接在文件里增加:

    elif msc_ver == [19000]: +            # Visual Studio 2015 / Visual C++ 15.0
    return ['vcruntime140.']

  修改完后需要下载 vcruntime140.dll 并放置在 pythonX.X\libs下

  在此重新编译。哇靠,成功了。睡觉去。。。。。。。。。。。

上一篇下一篇

猜你喜欢

热点阅读