我在位置C:\ strawberry \ perl \ lib。
的perl中安装了expect模块作为先决条件,我首先在同一位置安装了IO-Tty模块,并安装了perl。
现在,如果我正在做
use Expect;
抛出错误
Can't locate IO/Pty.pm in @INC (@INC contains: C:/strawberry/perl/site/lib C:/st
rawberry/perl/vendor/lib C:/strawberry/perl/lib .) at C:/strawberry/perl/lib/Exp
ect.pm line 22.
BEGIN failed--compilation aborted at C:/strawberry/perl/lib/Expect.pm line 22.
Compilation failed in require at croak.txt line 1.
BEGIN failed--compilation aborted at croak.txt line 1.
可能的原因是
Perl正在寻找从Expect.pm调用的IO :: Pty和IO :: Tty模块。但是当我安装了IO :: Tty模块时,它有2个pm文件,名称为Pty.pm和Tty.pm
package Expect;
use IO::Pty 0.97; # We need make_slave_controlling_terminal()
use IO::Tty;
但是perl正在寻找IO :: Tty模块。
这是否会导致问题。如果是,那么我该如何前进
答案 0 :(得分:3)
Expect在Windows下不起作用。
在查看CPAN Resters结果时,至少这是我的印象。这张表在这里: http://matrix.cpantesters.org/?dist=Expect;maxver=1 表明在Windows下从未有过PASS for Expect。
此外,Expect文档讨论了不使用ActivePerl的模块,并建议使用cygwin: https://metacpan.org/module/RGIERSIG/Expect-1.21/Expect.pod#Can-I-use-this-module-with-ActivePerl-on-Windows。 我认为Expect也不适用于StrawberryPerl。
答案 1 :(得分:1)
您是否使用cpan安装了这些模块? - 我强烈建议只通过cpan安装模块,这样你就可以获得所需的所有依赖项。
如果您已经这样做,请尝试重新安装并注意任何错误。
我通过cpan测试了安装,它需要编译IO :: Tty包,所以你可能需要为你想要安装的任何perl模块设置一个构建环境。
如果您刚刚复制了一些预编译文件,请确认您遗失的文件确实存在并再次下载该软件包。
编辑: 我错过了 - 你的Pty.pm和Tty.pm的完整路径应该是“C:/strawberry/perl/lib/IO/Tty.pm”