Заставить cpan нормально работать на windows 10 - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь заставить работать cpan на windows 10 professional.У меня установлен Perl 5.26 и dmake.Но всякий раз, когда я пытаюсь установить что-либо
, возникает ошибка.Есть ли что-то еще, что мне нужно для правильной работы cpan?

Я получаю сообщения об ошибках типа Предупреждение: обязательное условие 'invoker => 0' для 'AUDREYT / Methods-0.12.tar.gz' не удалось при обработке

А также, что в нем отсутствует команда ссылки.Можно ли заставить cpan работать должным образом на Windows или я должен просто оставить все как есть и просто использовать предварительно скомпилированные модули?Вот результат попытки установить Inline :: Python.Я положил его на pastebin, так как он довольно длинный: команда

    install Inline::Python  

pastebin

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Из вашего обновления версия Perl Active State использует скрипт ppm для установки скомпилированных пакетов из их репозитория.Если нужного вам модуля нет в их репозитории, значит, вы застряли.

В этом случае я бы посоветовал установить Strawberry Perl , который поставляется с полной цепочкой инструментов и будет обрабатывать любые cpanмодуль создан с учетом Windows.

0 голосов
/ 09 октября 2018

Из вашего расплывчатого описания я предполагаю, что инструменты сборки (компилятор, компоновщик) недоступны на вашей машине для разработки.Если вы сообщите нам имя модуля, который вы пытаетесь установить, и команду, которую вы используете для установки, мы, вероятно, сможем предоставить лучшие ответы, которые также помогут вам.Пожалуйста, также отправьте точные сообщения об ошибках, которые вы получаете.

Strawberry Perl поставляется с включенным компилятором C и компоновщиком.

Для ActiveState Perl вы можете установить их, введя следующие команды в командной строке:

ppm install MinGW

Что касается вашего обновления, вы устанавливаете Inline :: Python , и он не работает для вас:

        2. LIBRARY option. The location of the python library.
           Inline::Python needs to link against it to use Python.

        Here are the libraries I know about:
           1) C:/Python26/libs/python26.lib

Which? Or enter another. [1] C:\ProgramData\Anaconda3
...
Using These Settings:
   Extra Libs:
   Python Lib:  -LC:/ProgramData Anaconda3
   Includes:    -IC:/Python26/include
   Extra Flags: none (perl Makefile.PL --help for details)

Это выглядит неправильно:

   Python Lib:  -LC:/ProgramData Anaconda3

...
Warning (mostly harmless): No library found for Anaconda3

Вышеприведенное предупреждение не безвредно, так как оно в основном означает, что Inline :: Python ищет библиотеку Anaconda3, что неправильно.

Я предлагаю вам попробовать войти в библиотеку с косой чертой:

Which? Or enter another. [1] C:/ProgramData/Anaconda3

или, может быть,

Which? Or enter another. [1] C:/ProgramData/Anaconda3/python

Кроме того, вы можете намного лучше и проще отладитьУстановка и компиляция модуля, если вы вручную выполняете шаги его установки, но перед тем, как начать, смотрите ниже!В вашем случае шаги будут:

Запустить cpan клиент

cpan

Скачать и распаковать Inline :: Python

look Inline::Python

Запустить Makefile.PL build process

perl Makefile.PL
nmake
nmake test
nmake install

В идеале ни один из вышеперечисленных шагов не должен завершиться неудачей.

У вас такая же проблема с Proc :: ProcessTable , и проблема здесьчто этот модуль не работает на Windows.Я не знаю, почему Inline::Python полагается на него, но если вы не найдете предварительно скомпилированный Inline :: Python для Windows, вы не сможете использовать ни один из этих модулей.

См. Также

Документация ActiveState

...