2012-05-09 35 views
18

thể trùng lặp:
What's the easiest way to install a missing Perl module?Không thể xác định vị trí LWP/Simple.pm trong @ INC

Tôi đang cố gắng để chạy a Perl script để chuyển đổi SCXML để Graphviz DOT. Tôi đã sửa đổi dòng đầu tiên của tập lệnh thành:

#!/usr/bin/env perl 

chmod +x tệp. Khi tôi chạy nó qua ./scmxl2dot.pl tôi nhìn thấy đầu ra lỗi sau:

Không thể xác định vị trí LWP/Simple.pm trong @ INC (@ INC chứa: /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) tại dòng ./scmxml2dot.pl 14.
BEGIN thất bại -. compilation hủy bỏ tại dòng ./scmxml2dot.pl 14.

Line 14 của tập tin là use LWP::Simple;

Làm thế nào để:

  1. Tìm hiểu nếu tôi có điều này (mô-đun?) được cài đặt, và/hoặc
  2. Nhận LWP :: Đơn giản và làm cho nó có sẵn cho kịch bản?

Điều này đang chạy trong OS X 10.7.3 và Perl 5.12.3 (như đã thấy trong lỗi).

+2

Từ [Stack Overflow Perl FAQ] (http://stackoverflow.com/questions/tagged/ perl? sort = faq): [Cách dễ nhất để cài đặt một mô-đun Perl bị thiếu là gì?] (http://stackoverflow.com/questions/65865/whats-the-easiest-way-to-install-a-missing-perl -module) – daxim

Trả lời

30
  1. Bạn đã xác định rằng bạn không có nó (ở đâu đó nó có thể được tìm thấy).

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

+0

Cảm ơn; Tôi không biết nếu có lẽ có một con đường mất tích từ một số biến env cấu hình hoặc như vậy. – Phrogz

+0

Thử chạy nó từ sudo – Vincent

6
  1. Execute sau từ dòng lệnh:

    perl -MLWP::Simple -e 1 
    

    Nếu bạn không nhận được bất kỳ đầu ra từ lệnh trên sau đó các module được cài đặt; nếu bạn nhận được một lỗi, nó không được cài đặt

  2. để cài đặt sử dụng

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

Khi cuộc gặp gỡ perl sử dụng của bạn :: Học phần nó đi qua các yếu tố của built-in module @ INC có chứa tên thư mục. Trong mỗi thư mục, nó kiểm tra xem có thư mục con nào được gọi là "My" không và nếu trong thư mục con đó có một tệp có tên "Module.pm".

kiểm tra nơi LWP :: Mô-đun đơn giản được cài đặt trên hệ thống của bạn và nhập dòng dưới đây ngay phía trên LWP sử dụng :: Tuyên bố đơn giản về mã của bạn.

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

Hãy nhìn vào các trang web Perldoc. Điều này sẽ cho bạn biết mô-đun nào là mô-đun Perl chuẩn và mô-đun nào không.

Bạn cũng có thể sử dụng lệnh perldoc để tìm hiểu xem mô-đun Perl đã được cài đặt hay chưa và liệu đó có phải là tài liệu của nó hay không.

$ perldoc LWP::Simple 

(Nếu perldoc không thực hiện như là một lệnh làm ls -l /usr/bin/perl*. Trên các máy Mac, một số các lệnh Perl không có bit thực thi bật. Để bật tính năng này, làm sudo chmod a+x /usr/bin/perl).

Chỉ xảy ra LWP::Simple không phải là mô-đun Perl chuẩn và nếu bạn không có mô-đun đó, bạn sẽ phải cài đặt nó. Hầu hết mọi người đã nói với bạn về cpan. Thật không may, theo mặc định, Mac không có các công cụ phát triển dòng lệnh cần thiết được cài đặt. You'll have to install them.

Một khi họ đang được cài đặt, bạn có thể sử dụng lệnh cpan để cài đặt LWP :: Simple:

$ sudo cpan #Run cpan and configure it. It takes about 3 minutes 
cpan> install LWP::Simple 
cpan> exit 
Các vấn đề liên quan