Установка PyCLIPS на основе CLIPS 6.30 для Windows Python 2.7 32 бит

Я узнал, что есть версия PyCLIPS, основанная на версии 6.30 CLIPS. Такую (или аналогичную) версию PyCLIPS можно также установить через pip, см. Здесь.

В Linux оба подхода работают нормально, то есть установка через git clone + setup.py или через pip. На Windows это работало только с cygwin 64bit. pip install pyclips не удалось (я полагаю, из-за отсутствия флага '-DWIN_MVC', см. шаг 7 ниже).

Однако я хотел бы иметь PyCLIPS, основанный на CLIPS 6.30, на "обычном" Windows Python, а точнее 32-битном Python2.7 на 64-битной Windows 7. У меня установлена ​​Visual Studio Express 2008.

Что я пробовал:

  1. git clone 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. извлечь содержимое core папка в clipssrc папка
  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 не может справиться с целыми числами, которые больше, чем 2147483648 (sys.maxint+1 на питоне 2.7 32 бит).

Во время компиляции с Visual Studio 2008 я получил предупреждениеconversion from '__int64' to 'long', possible loss of data". Я изменил типы соответствующих переменных на long long, Предупреждения исчезли, но ошибка с большими целыми числами все еще существует.

Как установить PyCLIPS на основе CLIPS 6.30 в 64-битной Windows 7 для использования с 32-битной версией Python 2.7?

РЕДАКТИРОВАТЬ 1: Я пытался установить его с 32-разрядной Cygwin - и это не сработало. Так может это проблема 32/64 бит? 32-битная версия клипов (устанавливается через официальный установщик) отлично работает на моей Windows 7 64-битной...

РЕДАКТИРОВАТЬ 2: Кажется, работает с интерпретаторами Python, которые имеют sys.maxint 9223372036854775807 но не с переводчиками, которые имеют sys.maxint 2147483647, Интересно, что даже 64-битный Windows Python имеет последнее значение.

Резюме:

  • Cygwin Python 64 бит, maxint: 9223372036854775807, без ошибок
  • Python Cygwin 32 бит, maxint: 2147483647, ошибка
  • Windows Python 2.7 32-битная, maxint: 2147483647, ошибка
  • Windows Python 2.7 64 бит, maxint: 2147483647, ошибка

0 ответов

Другие вопросы по тегам