1

我了解到一个基于 CLIPS 版本 6.30 的 PyCLIPS 版本。相同(或相似)的 PyCLIPS 版本也可以通过 pip 安装,请参见此处

在 Linux 上,这两种方法都可以正常工作,即通过 git clone + setup.py 或通过 pip 安装。在 Windows 上,它仅适用于 cygwin 64 位。pip install pyclips失败(我想是由于缺少“-DWIN_MVC”标志,请参见下面的步骤 7)。

但是,我想在“常规”Windows python 上使用基于 CLIPS 6.30 的 PyCLIPS,准确地说是在 Windows 7 64 位上使用 Python2.7 32 位。我安装了 Visual Studio Express 2008。

我尝试了什么:

  1. git 克隆https://github.com/almostearthling/pyclips.git
  2. cd pyclips
  3. git checkout pyclips-1.1_clips-6.30
  4. 删除文件clipssrc
  5. 官方存储库下载 CLIPS 6.30 源代码
  6. 创建一个新文件夹 文件夹clipssrc内新创建的文件pyclips
  7. 将文件夹内容解压coreclipssrc文件夹中
  8. setup.py第 738 行左右,添加'-DWIN_MVC'CFLAGS列表中
  9. 为 Windows 安装补丁实用程序并将其添加到 PATH
  10. 启动 Visual Studio Express 2008(32 位)命令提示符
  11. cd 进入pyclips文件夹
  12. python setup.py build
  13. 如果构建通过(它应该)安装通过python setup.py install

尽管构建和安装都通过了,但大整数仍然会导致错误,就像 CLIPS 6.30 之前的版本一样。这意味着 CLIPS 无法处理大于2147483648sys.maxint+1在 python 2.7 32 位上)的整数。

在使用 Visual Studio 2008 进行编译期间,我收到了警告“ conversion from '__int64' to 'long', possible loss of data”。我将相应变量的类型更改为long long. 警告消失了,但大整数的错误仍然存​​在。

如何在 Windows 7 64 位上安装基于 CLIPS 6.30 的 PyCLIPS 以与 32 位 Windows Python 2.7 一起使用?

编辑 1:我尝试使用 cygwin 32 位安装它 - 但它不起作用。所以也许这是一个 32/64 位的问题?32 位版本的剪辑(通过官方安装程序安装)在我的 Windows 7 64 位上运行良好...

编辑 2:它似乎适用于具有 sys.maxint 的 python 解释器,9223372036854775807但不适用于具有 sys.maxint 的解释器2147483647。有趣的是,即使是 64 位 Windows Python 也有后者的值。

概括:

  • cygwin Python 64位,maxint:9223372036854775807,没有错误
  • cygwin Python 32位,maxint:2147483647,错误
  • Windows Python 2.7 32 位,最大值:2147483647,错误
  • Windows Python 2.7 64 位,最大值:2147483647,错误
4

0 回答 0