Windows系统下Perl的IO::Stringy与IO::InnerFile安装测试失败如何解决?
解决Windows 8.1下ActivePerl 5.24.3安装Spreadsheet::Read失败的问题
我来帮你搞定这个因为IO::InnerFile测试全挂导致的Spreadsheet::Read安装失败问题,在你的Windows 8.1 + ActivePerl 64位5.24.3环境里,试试下面几个方案:
方案1:强制跳过IO::InnerFile的测试安装
很多时候测试失败只是环境兼容性的小问题,模块本身功能是正常的,可以强制安装跳过测试:
- 打开命令提示符(CMD),先切换到Perl的bin目录:
cd C:\Perl64\bin - 输入
cpan进入CPAN交互模式 - 先装IO::InnerFile所属的IO-stringy包,强制跳过测试:
force install IO-stringy - 等安装完成后,再安装Spreadsheet::Read:
install Spreadsheet::Read
方案2:手动下载IO-stringy包,跳过测试安装
如果CPAN交互模式的强制安装还是不行,试试手动操作:
- 下载对应版本的IO-stringy包(比如你碰到的2.111版本),解压到本地目录,比如
C:\temp\IO-stringy-2.111 - 打开管理员权限的CMD,切换到解压后的目录:
cd C:\temp\IO-stringy-2.111 - 执行命令生成Makefile:
perl Makefile.PL - 然后运行编译命令(如果你的环境用的是nmake就输
nmake,用dmake就输dmake) - 最后跳过测试直接安装:
nmake install SKIPTEST=1(或者dmake install SKIPTEST=1) - 完成后再回到CPAN安装Spreadsheet::Read即可
方案3:检查权限问题
测试脚本失败有可能是权限不足导致的,比如无法创建临时文件或读写某些系统目录:
- 右键点击CMD,选择「以管理员身份运行」,然后重新执行CPAN安装命令,看看能不能通过测试
方案4:考虑升级Perl版本(可选)
ActivePerl 5.24.3是比较老的版本了,对Windows 8.1的兼容性可能存在一些遗留问题。如果前面的方案都不管用,可以考虑升级到更近期的Perl版本(比如Strawberry Perl或者新版ActivePerl),新版本对第三方模块的支持会更完善,安装Spreadsheet::Read可能会更顺畅。
内容的提问来源于stack exchange,提问作者jmasa
相关产品推荐
相关产品推荐

