Вопрос по perl – Не удается найти LWP / Simple.pm в @INC [дубликаты]

18

Possible Duplicate:
What's the easiest way to install a missing Perl module?

Я пытаюсь бежатьскрипт Perl конвертировать SCXML в Graphviz DOT. Я изменил первую строку скрипта так:

#!/usr/bin/env perl

а такжеchmod +x файл. Когда я запускаю его через./scmxl2dot.pl Я вижу следующую ошибку:

Can't locate LWP/Simple.pm in @INC (@INC contains: /opt/local/lib/perl5/site_perl/5.12.3/darwin-multi-2level /opt/local/lib/perl5/site_perl/5.12.3 /opt/local/lib/perl5/vendor_perl/5.12.3/darwin-multi-2level /opt/local/lib/perl5/vendor_perl/5.12.3 /opt/local/lib/perl5/5.12.3/darwin-multi-2level /opt/local/lib/perl5/5.12.3 /opt/local/lib/perl5/site_perl /opt/local/lib/perl5/vendor_perl .) at ./scmxml2dot.pl line 14.
BEGIN failed--compilation aborted at ./scmxml2dot.pl line 14.

Строка 14 файлаuse LWP::Simple;

Как я:

Find out if I have this thing (module?) installed, and/or Get LWP::Simple and make it available to the script?

This is running under OS X 10.7.3 and Perl 5.12.3 (as seen in the error).

Ваш Ответ

3   ответа
31

re already determined that you don't have it (somewhere it can be found).

perl -MCPAN -e'install "LWP::Simple"'

Спасибо; Я не знал, возможно, отсутствовал какой-либо путь в какой-либо переменной env конфигурации или что-то подобное. Phrogz
Попробуйте запустить его из sudo
Вам не нужно возиться с выполнением вручнуюperl -MCPAN -e ...; ты можешь просто бежатьcpan LWP::Simple.
2

Perldoc страница интернета. Это скажет вам, какие модули являются стандартными модулями Perl, а какие нет.

Вы также можете использоватьperldoc Команда, чтобы узнать, установлен ли модуль Perl, и, если это так, его документация.

$ perldoc LWP::Simple

(Если Perldoc не выполняется как команда, выполнитеls -l /usr/bin/perl*, На компьютерах Mac некоторые команды Perl не имеют включенного бита выполнения. Чтобы включить его, сделайтеsudo chmod a+x /usr/bin/perl).

Просто так случаетсяLWP::Simple не является стандартным модулем Perl, и если у вас его нет, вам придется его установить. Большинство людей уже рассказали вам оcpan, К сожалению, по умолчанию на Mac не установлены необходимые средства разработки командной строки.Вам придется их установить.

После их установки вы можете использоватьcpan Команда для установки LWP :: Simple:

$ sudo cpan   #Run cpan and configure it. It takes about 3 minutes
cpan> install LWP::Simple
cpan> exit
sudo cpan это очень плохая идея в целом. Это позволяет устанавливать в системные каталоги, которые могут перезаписывать системные модули. Это может вызвать проблемы позже, например потому что вы изменили файлы, принадлежащие системному пакету, или непреднамеренно обновили модуль, используемый системной программой, до несовместимой более новой версии. Лучше: использоватьlocal::lib установить модули в свой домашний каталог или создать свой собственный Perl (самый простой способ:perlbrew), который живет полностью в вашем домашнем каталоге.
6

Execute the following from the command line:

perl -MLWP::Simple -e 1

If you don't get any output from the above command then the module is installed; if you get an error, it's not installed

to install use

perl -MCPAN -e'install "LWP::Simple"'

Когда Perl встречает использование My :: Module, он перебирает элементы встроенного модуля @INC, который содержит имена каталогов. В каждом каталоге он проверяет, есть ли подкаталог с именем & quot; Мой & quot; и если в этом подкаталоге есть файл с именем «Module.pm».

проверьте, где в вашей системе установлен модуль LWP :: Simple, и введите строку ниже чуть выше использования LWP :: Simple вашего кода.

    use lib '/usr/local/module';
    use LWP::Simple;

Похожие вопросы