首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么perl不能找到@INC中存在的模块?

为什么perl不能找到@INC中存在的模块?
EN

Stack Overflow用户
提问于 2020-08-13 22:56:39
回答 1查看 1.1K关注 0票数 1

我已经成功地从python运行了一段时间的perl脚本。我刚刚把所有的东西都转移到了一台新电脑上(两者都在运行Windows 10),我遇到了一些问题。

在运行脚本时,我会得到以下错误:

代码语言:javascript
复制
Can't locate DBI.pm in @INC (you may need to install the DBI module) (@INC contains: /usr/lib/perl5/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl)

在第一行use DBI;上。

我移到使用Perl (command line),选择了带有脚本的文件夹,并运行了perl <filename> -相同的错误。

DBI似乎正确地安装在C:\Strawberry\perl\vendor\lib中,当我通过perl -V检查时,该目录就在我的@INC中。

代码语言:javascript
复制
  @INC:
    C:/Strawberry/perl/site/lib
    C:/Strawberry/perl/vendor/lib
    C:/Strawberry/perl/lib

我再次尝试使用DBI安装cpan Module::DBI,但是我得到了错误:

代码语言:javascript
复制
Could not expand [Module::DBI]. Check the module name.

我尝试过用perl -MCPAN -e "install Bundle::DBI"安装它,但是它失败了:

代码语言:javascript
复制
Test Summary Report
-------------------
t/original.t (Wstat: 0 Tests: 27 Failed: 1)
  Failed test:  26
Files=1, Tests=27,  1 wallclock secs ( 0.05 usr +  0.01 sys =  0.06 CPU)
Result: FAIL
Failed 1/1 test programs. 1/27 subtests failed.
gmake: *** [Makefile:863: test_dynamic] Error 255
  NEILB/IO-Tee-0.65.tar.gz
  C:\STRAWB~1\c\bin\gmake.exe test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
  reports NEILB/IO-Tee-0.65.tar.gz
Stopping: 'install' failed for 'IO::Tee'.

在我以前的机器上设置时,我没有任何问题(两次都是普通的安装,没有额外模块的导入)。

我试过几次重新安装草莓,但都没有用。我尝试过安装perlbrew和ActivePerl,但是这两个都遇到了问题。我现在也用尽了谷歌的潜在解决方案。

有什么想法吗?

编辑:

按照建议这里,我运行了perl -e "use DBI;",没有错误消息,这显然意味着DBI已正确安装?

编辑2

好的,我已经设法让事情通过Perl (command line),也通过cmd -它需要一个完整的重新安装MySQL,这并不是真正有意义的,但无论如何。但是,我仍然不能使用Git Bash执行脚本。我总是犯同样的错误.

EN

回答 1

Stack Overflow用户

发布于 2020-08-13 23:45:46

更新:修复IO-Tee 0.66.中的错误

失败的测试假设sysread遵从在Windows中添加到文件句柄中的:crlf层。但事实并非如此,这是一个糟糕的测试,与模块无关。因此,由于这是唯一失败的测试,因此可以使用以下方法安全地强制安装模块:

代码语言:javascript
复制
cpan -f IO::Tee

在测试失败的情况下强制安装模块通常是个坏主意,因为这意味着您要强制安装可能损坏的模块。但是这里没有问题,因为已经确定问题在于测试,而不是模块本身。

我已经提交了一个错误报告,其中包含了对问题的更彻底的解释和解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63404275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档