Ошибка установки Cabal отсутствующей на Haskell Platform 2010.2.0.0 в Windows 7 - PullRequest
1 голос
/ 17 марта 2011

Я новичок в 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 . Однако это не решило проблему.

Кто-нибудь имеет опыт и решения по этому вопросу?

1 Ответ

0 голосов
/ 07 февраля 2013

Обратите внимание, что 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 не существует, может быть найден или содержит неверную информацию, установка завершится неудачей.

...