2

在深入探讨之前,我应该注意到我已经看到了一个非常相似的问题,但是提出的解决方案对我不起作用。也许其中一个原因是因为那是 Linux 构建,而我目前的困难是在 Windows 7 机器上。我使用 Cygwin 来访问 gcc (5.2.0) 编译器套件。

无论如何,我一直在尝试通过 PyStan 试用 Stan。我正在使用我今天刚刚更新的 Anaconda(2.4.1 64 位)发行版(Python 2.7.11)。我最初尝试通过 pip 安装 PyStan,但由于以下错误,安装一直失败:

Cannot build msvcr library: "msvcr90d.dll" not found

因此,我改用了conda,它似乎安装得很好。(我应该注意到 conda 安装将我的 numpy 推回了早期版本,这在导入时与 pandas 产生了冲突。我刚刚更新了 anaconda 以处理这些损坏的依赖项。)我还能够毫无问题地导入 PyStan。但是,当我实际尝试拟合模型(在 Jupyter Notebook 内部)时,该过程失败,但标题中出现异常。

我做的第一件事是确认 gcc 在引用位置的位置(标题中未显示)。确实如此,而且它似乎工作得很好。然后我尝试从命令行将模型作为脚本运行(仍然使用 Python),但它失败并出现同样的错误。当我通过 REPL 重新创建模型时,它指向一个不同的位置,该位置有一个 .bat 文件引用(已验证)编译器,并且也失败了。

我很确定这是因为我有 Visual Studio 2012,而不是 Visual Studio 2008。虽然我可以运行并行安装,但如果此代码将来对其他人有用,这些不是合理的箍跳过以实现它。我希望其他人可能有更好的解释。任何信息,将不胜感激。

4

1 回答 1

0

受益于https://github.com/stan-dev/pystan/issues/306上的帖子

我遇到了各种错误消息,但最后,我成功安装了 PyStan。

我的机器也在安装了 Anaconda3 的 Windows 7、x64 上。这里是从源代码安装 PyStan 的过程。

  1. 在http://landinghub.visualstudio.com/visual-cpp-build-tools安装 Visual Studio 2017 和 Visual Studio C++ Build Tool 2015

  2. 更新康达

康达更新康达

康达更新--全部

  1. 检查依赖项

点安装安装工具

conda 安装 numpy cython matplotlib scipy pandas

  1. 安装 gcc 编译器组件

康达安装 libpython

conda install -c msys2 m2w64-toolchain=5.3.0

  1. 在 Anaconda3\Lib\distutils 文件夹中创建了 distutils.cfg 文件,其中包含以下内容:

[建造]

编译器 = mingw32

  1. 在https://git-scm.com/downloads下载 Git

git clone --recursive https://github.com/stan-dev/pystan.git

  1. 从源代码编译

python setup.py build --compiler=mingw32

python setup.py 安装

PS 问题的解决方案:无法构建 msvcr 库:找不到“vcruntime140d.dll”。

将 vcruntime140d.dll 从 C:\Windows\System32 复制到任意文件夹,在高级系统设置/环境变量/系统变量中的路径下即可。

于 2018-01-07T19:36:20.407 回答