2014-12-05 2 views
1

Я пытаюсь следовать инструкциям по установке для PySWIP в Windows, который первым просит установить 32 битной версии SWI-Prolog сначала и включают в свой бункер в PATH, который я сделал , Затем я установил 64-разрядную версию PySWIP, так как мой Python-2.7 - это 64-разрядная версия Anaconda. Но это не работает (см. Ошибку ниже).Ошибки при установке PySWIP для использования Prolog в Python

Как было предложено в другом месте, я также сделал копию libswipl.dll (в C: \ Program Files (x86) \ pl \ bin) как libpl.dll и swipl.ico (в C: \ Program Files (x86) \ pl) как pl.ico, но не повезло.

ошибка, что я получаю (в Spyder и EclipsePyDev Иды с помощью Anaconda переводчика), когда я вхожу в первую строку ниже является:

>>> from pyswip import Prolog 
     Traceback (most recent call last): 
     File "<stdin>", line 1, in <module> 
     File "C:\Users\XXX\Anaconda\lib\site-packages\pyswip\__init__.py", line 29, in <module> 
     from pyswip.prolog import Prolog 
     File "C:\Users\XXX\Anaconda\lib\site-packages\pyswip\prolog.py", line 29, in <module> 
     from pyswip.core import * 
     File "C:\Users\XXX\Anaconda\lib\site-packages\pyswip\core.py", line 360, in <module> 
     _lib = CDLL(_path) 
     File "C:\Users\XXX\Anaconda\lib\ctypes\__init__.py", line 365, in __init__ 
     self._handle = _dlopen(self._name, mode) 
    WindowsError: [Error 193] %1 is not a valid Win32 application 

Как это исправить?

Справочная информация: Я работаю через первый логический порядок программирования естественного языка семантики NLTK book, и я подумал, что было бы неплохо иметь логическую программу, которая может сделать ограничение программирования (в частности, решить равенство логических ограничений)

ответ

2

Нашел мой ответ - это было то, что я должен был установить 64-битную (вместо 32-разрядной) версию SWI-Prolog для работы с 64-разрядными PySWIP и Python (хотя руководство по установке в PySWIP специально упомянуло 32-битный SWI -Prolog). Теперь работает.

PS: Я не нашел необходимости переименовывать libswipl.dll или swipl.ico