gpt4 book ai didi

linux - 为什么 perl 调试器找不到脚本找到的模块?

转载 作者:太空宇宙 更新时间:2023-11-04 11:39:50 27 4
gpt4 key购买 nike

使用 CPAN,我安装了 GD::Graph 来制作水平堆叠条形图。 CPAN 在/root/.cpan/build/GD-2.45-4PSn9K 中安装了模块,它不在 @INC 中。在我的脚本中,我可以通过添加

来访问模块
use lib "/root/.cpan/build/GD-2.45-4PSn9K"

脚本现在可以毫无问题地生成图表。我想使用 perl 调试器(“perl -d myscript.pl”),但它提示无法找到 GD.pm(在该路径中)。我添加了 PERL5LIB 的路径,用“perl -V”验证,但调试器仍然找不到它。

也许解决此问题的一种方法是将 GD 安装在其中一个 @INC 路径中,但是 a) 我不知道该怎么做,并且 b) 我真的很想了解发生了什么。

这是在 Fedora Core 12 上。

我不知道是否会有所不同,但 GD::Graph 实际上用在我的主脚本包含的模块中。主脚本不使用它。

更新:按照下面的建议,我重新进入CPAN并强制安装。 CPAN 表示它在/root/.cpan/(等)找到安装并将该路径预先添加到@INC。然后我从 .cpan 目录中手动删除了 GD,然后再次安装。这次 CPAN 把它放在同一个地方,也放在/usr/local/lib/perl5/GD-2.45PSn9K”。它把两条路径都放在 @INC 的前面。我已经验证它在那里,并且 perl 调试器声称正在寻找那里,但仍然找不到 GD.pm(在那里)并且不会运行脚本。

@INC:
/usr/local/lib/perl5/GD-2.45-4PSn9K/
(and others)

从 perl -d:

Can't locate loadable object for module GD in @INC (@INC contains:   

... 并在其他路径中列出该路径。它确实存在:

[root /]# find . -name "GD.pm"
./usr/local/lib/perl5/GD-2.45-4PSn9K/GD.pm
./usr/local/lib/perl5/GD-2.45-4PSn9K/blib/lib/GD.pm
(and the /root/.cpan paths)

最佳答案

关于伯恩兼容:

export PERL5LIB=$PERL5LIB:/root/.cpan/build/GD-2.45-4PSn9K

这不是最佳解决方案。您实际上应该通过 cpan 安装它。如果它工作正常但无法安装,那么您可能需要强制它。

force install GD::Graph

还有

perl -I/root/.cpan/build/GD-2.45-4PSn9K -d myscript.pl

关于linux - 为什么 perl 调试器找不到脚本找到的模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4455352/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com