Установка 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.
Что я пробовал:
- git clone https://github.com/almostearthling/pyclips.git
- CD Pyclips
- git checkout pyclips-1.1_clips-6.30
- удалить файл
clipssrc
- скачайте исходный код CLIPS 6.30 из официального репозитория
- создать новую папку вновь созданную папку
clipssrc
внутриpyclips
папка - извлечь содержимое
core
папка вclipssrc
папка - в
setup.py
около 738 добавить'-DWIN_MVC'
кCFLAGS
список - установить утилиту исправления для windows и добавить ее в PATH
- Запустите Visual Studio Express 2008 (32-разрядная) командная строка
- CD в
pyclips
папка - бежать
python setup.py build
- Если встроенный прошел (он должен) установить через
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, ошибка