簡體   English   中英

在@INC中找不到DBI.pm無法解析

[英]Can't locate DBI.pm in @INC can't resolve

錯誤提示:

Can't locate DBI.pm in @INC (@INC contains
    /etc/perl 
    /usr/local/lib/perl/5.14.2 
    /usr/local/share/perl/5.14.2 
    /usr/lib/perl5 
    /usr/share/perl5 
    /usr/lib/perl/5.14 
    /usr/share/perl/5.14 
    /usr/local/lib/site_perl .) at /usr/lib/cgi-bin/helloworld.pl line 7.

但是我已經使用以下命令將模塊的路徑添加到環境變量中

export PERL5LIB=/home/vagrant/perl5/lib/perl5/i686-linux-gnu-thread-multi-64int

當我使用perl -V檢查時,它已經包含在內,請參見以下內容:

%ENV:
    PERL5LIB="/home/vagrant/perl5/lib/perl5"
    PERL_LOCAL_LIB_ROOT="/home/vagrant/perl5"
    PERL_MB_OPT="--install_base "/home/vagrant/perl5""
    PERL_MM_OPT="INSTALL_BASE=/home/vagrant/perl5"
  @INC:
    /home/vagrant/perl5/lib/perl5/5.14.2/i686-linux-gnu-thread-multi-64int
    /home/vagrant/perl5/lib/perl5/5.14.2
    /home/vagrant/perl5/lib/perl5/i686-linux-gnu-thread-multi-64int <--- My module
    /home/vagrant/perl5/lib/perl5
    /etc/perl
    /usr/local/lib/perl/5.14.2
    /usr/local/share/perl/5.14.2
    /usr/lib/perl5
    /usr/share/perl5
    /usr/lib/perl/5.14
    /usr/share/perl/5.14
    /usr/local/lib/site_perl

我的機器是Ubuntu 16.04.2 LTS

非常感謝您的幫助,謝謝!

請參閱文件“使用LIB” 這里和“perl的運行” 這里和Ubuntu環境變量這里

我懷疑您是在不同環境中運行腳本。 您的shell提示符與httpd服務器使用的環境不同,也與cron程序使用的環境不同。 當您向環境中添加環境變量時,它僅在您的環境中(並且通常僅在您的環境實例中),而不在其他環境中。 這些其他應用程序無法查看或讀取您的環境變量。

我猜這里是因為您未提供任何代碼,因此在“使用DBI”之前向腳本添加以下行可能會幫助您:

use lib "/home/vagrant/perl5/lib/perl5";
use lib "/home/vagrant/perl5/lib/perl5/i686-linux-gnu-thread-multi-64int";

我說這可能是因為,正如偉大的池上指出,如果這個單獨的應用程序的環境沒有訪問您的目錄,那么就不會這些文件夾添加到列表@INC。 您發布的輸出的第一部分清楚地表明您的主文件夾不在列表中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM