Я новичок Haskell и хочу использовать библиотеки Python (для взаимодействия с существующим программным обеспечением, например, с использованием библиотек Numpy). Я узнал, что это можно сделать с помощью пакета MissingPy (http://hackage.haskell.org/package/MissingPy), однако я не могу установить его через cabal на Windows 7 на платформе Haskell 2010.2.0.0.
Первая ошибка, с которой я столкнулся, заключалась в том, что компилятор не нашел библиотеки python2.6. Это было решено путем помещения python2.6.dll в правильный каталог (или добавление его в переменную пути к системе). Тем не менее, я не могу исправить следующую ошибку в конце вывода команды "cabal install missingpy":
...
[11 of 12] Compiling MissingPy.FileArchive.GZip ( MissingPy\FileArchive\GZip.hs, dist\build\MissingPy\FileArchive\GZip.p_o )
[12 of 12] Compiling MissingPy.FileArchive.BZip2 ( MissingPy\FileArchive\BZip2.hs, dist\build\MissingPy\FileArchive\BZip2.p_o )
Registering MissingPy-0.10.5...
setup.exe: MissingPy-0.10.5: library-dirs: None doesn't exist or isn't a
directory (use --force to override)
cabal: Error: some packages failed to install:
MissingPy-0.10.5 failed during the building phase. The exception was:
ExitFailure 1
Я установил полное программное обеспечение MinGW после прочтения предложений по ответам на вопрос, заданный по Использование c2hs в Windows. Однако это не решило проблему.
Кто-нибудь имеет опыт и решения по этой проблеме?
Обратите внимание, что Setup.exe заполняет информацию о сборке с помощью инструмента python:
https://github.com/softmechanics/missingpy/blob/master/Setup.hs
Соответствующий код находится здесь:
libDir <- python ["-c", "from distutils.sysconfig import *; print get_python_lib()"]
incDir <- python ["-c", "from distutils.sysconfig import *; print get_python_inc()"]
confLibDir <- python ["-c", "from distutils.sysconfig import *; print get_config_var('LIBDIR')"]
pyVersionStr <- python ["-c", "import sys; sys.stdout.write(\"%d.%d\" % (sys.version_info[0], sys.version_info[1]))"]
Если инструмент python не существует, его можно найти или дать плохую информацию, установка завершится неудачно.