无法构建 Gambit 博弈论扩展

Can't Build Gambit Game Theory Extension

我已经安装了 Gambit python 接口的依赖项,但是在尝试构建 gambit 库时出现 config.h 错误(见下文)。我是 运行 Yosemite 10.10.13 并在 MacBook Air (2014) 上使用终端。

错误信息如下:

172-16-226-146:python hsl306$ python setup.py build
running build
running build_py
running build_ext
skipping 'gambit/lib/libgambit.cpp' Cython extension (up-to-date)
building 'gambit.lib.libgambit' extension
/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -pipe -Os -fwrapv -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I../.. -I.. -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c gambit/lib/libgambit.cpp -o build/temp.macosx-10.10-x86_64-2.7/gambit/lib/libgambit.o
In file included from gambit/lib/libgambit.cpp:247:
../libgambit/libgambit.h:30:11: fatal error: 'config.h' file not found
 #include <config.h>
          ^
1 error generated.
error: command '/usr/bin/clang' failed with exit status 1

我遇到了同样的错误。问题是您需要先构建 Gambit,然后才能构建 python 界面。请按照 http://www.gambit-project.org/gambit15/build.html 顶部的说明进行操作。

我刚刚设法让 Gambit 库在我的命令行中工作。

安装过程中可能遇到的步骤和错误较多:

  1. 正如@theycallhimtom 所说,问题是您需要先构建 Gambit,然后才能构建 python 界面。按照 link 中的说明首先构建 Gambit。
  2. 构建时,您可能会遇到以下错误,即从 Github 将 Gambit 克隆到本地环境并进入目录后,您无法 运行 ./configure.
  3. 您必须安装它们需要安装的 3 个 tools/dependency:autoconf、automake 和 libtool。所有这些都可以使用 brew install ...(brew install autoconf、brew install automake 和 brew install libtool)
  4. 安装后你应该尝试运行 aclocal。如果它不起作用,您需要在克隆的 Gambit 目录中使用 mkdir m4 创建一个 m4 目录(确保安装了 m4,如果没有安装它,请使用 brew install m4 或从 Github 克隆它)
  5. 安装m4目录时,尝试运行 libtoolize。如果它有效,很好。如果没有,只需将 'g' 添加到 libtoolize 使其成为 glibtoolize,它就会工作(编程有时就像变魔术一样)
  6. 之后,如果安装正确,automake 和 autoconf 应该可以正常工作。
  7. 尝试 运行ning ./configure 和 sudo make install 将 Gambit 构建到您的系统中。你这里应该没有问题。
  8. 使用 cd src/python 进入 Python 目录,然后尝试 运行ning python setup.py build.
  9. 此时,您可能会收到一条错误消息,提示 gcc 无法编译,或类似的错误消息。不要恐慌。只需打开发现错误的文件(应该是c++文件),手动修正这些错误即可。应该大约有 20 个错误。您需要做的就是将 space 添加到直角括号中(至少我是这样做的)
  10. 运行 sudo python setup.py install,你应该终于可以将 Gambit 库安装到 Python.
  11. 不要按照他们关于此的文档 page. It's outdated and doesn't work. Use their Github page 相反。

这就是我如何让 Gambit 库在 Python 中为我工作,希望它对你有用!