【问题标题】:Perl Module install error CPAN Spreadsheet::ParseExcelPerl 模块安装错误 CPAN Spreadsheet::ParseExcel
【发布时间】:2023-03-06 05:49:01
【问题描述】:

您好,我正在尝试在我的 Windows 机器中从 cpan 安装 perl 模块,在点击两次是后出现以下错误。

Checking if your kit is complete...
Warning: the following files are missing in your kit:
README
    Please inform the author.
    Writing Makefile for Digest::Perl::MD5
    'nmake' is not recognized as an internal or external command,
    operable program or batch file.
      nmake  -- NOT OK
    Running make test
      Can't test without successful make
    Running make install
      make had returned bad status, install seems impossible
    Running make for D/DO/DOUGW/Spreadsheet-ParseExcel-0.65.tar.gz
      Is already unwrapped into directory C:\Perl\cpan\build\Spreadsheet-ParseExcel
    0.65

      CPAN.pm: Going to build D/DO/DOUGW/Spreadsheet-ParseExcel-0.65.tar.gz

    'nmake' is not recognized as an internal or external command,
    operable program or batch file.
      nmake  -- NOT OK
    Running make test
      Can't test without successful make
    Running make install
      make had returned bad status, install seems impossible

>perl exceltoxml.pl
Can't locate Spreadsheet/ParseExcel.pm in @INC (@INC contains: C:/Perl/site/lib
    C:/Perl/lib .) at exceltoxml.pl line 4.
    BEGIN failed--compilation aborted at exceltoxml.pl line 4.

我已经尝试了 5 次。

【问题讨论】:

  • 您没有安装nmake 程序。
  • 嗨,你能帮我如何安装nmake程序
  • 您使用的是哪个 Perl 发行版?如果使用 ActiveState,则需要安装 MinGW:ppm install mingw。如果您确实想使用 Visual C 工具,可以安装 MS Visual Studio 2013 Community Edition 并构建自己的 perl

标签: perl perl-module cpan


【解决方案1】:

nmake' 未被识别为内部或外部命令

Sinan Ünür 是对的。错误消息是您没有安装nmake。这意味着您正在尝试编译代码(可能是 C 代码)并且没有 C 编译器或 Make 程序。

不久前,我会告诉人们 ActiveState 不完全支持cpan,因为它无法编译代码。 ActiveState 使用它自己的预编译包,可通过 Perl 包管理器 (PPM) 获得,可以从命令行或 GUI 界面使用。如果一个包不能通过 PPM 获得并且它需要编译,那么你就很不走运了。出于这个原因,我通常会推荐 Strawberry Perl 而不是 ActivePerl。 Strawberry Perl 带有完整的MinGW 环境,这些环境是那些可编译的 CPAN 模块所需的。

然而,大约六年前,ActiveState 组合了一个可安装的PPM package for the MinGW environment。安装后,ActivePerl 可以使用 CPAN。

所以你有两个解决方案:

  • 按照 Sinan Ünür 在他的回答中提到的那样安装这个 PPM 包。然后,再次尝试Spreadsheet::ParseExcel
  • 安装 Strawberry Perl 而不是 ActiveState 的 Perl。 Strawberry Perl 似乎与 Unix/Mac/Linux 系统上的 Perl 版本更兼容。然后尝试安装Spreadsheet::ParseExcel 包。
  • 好的,三个解决方案:安装Cygwin,它将在您的Windows 机器上为您提供完整的Linux 环境。安装可能需要大约两个小时,但它附带了您熟悉和喜爱的所有 GNU 实用程序、大多数其他 Unix/Linux 实用程序和 BASH shell。

    这是许多 Linux/Unix 宅男们在厌倦了C:\> 提示符时使用的方法。 Cygwin 带有最新版本的 Perl,并且可以与我尝试过的每一个 CPAN 包一起使用。有一些小问题(如 Termcaps),事情并没有像他们想象的那样工作,但我通常对此感到满意。它甚至带有 X11,允许您运行 XWindow 应用程序,甚至可以跨系统使用 XWindow 应用程序——就像真正的操作系统一样!

在某些情况下,CPAN 模块在 Windows 上可能仍然存在问题。其中之一与归档和取消归档模块以及缺少的libz 库有关。但是,安装这个 MinGW 包(或使用 Strawberry Perl 或 Cygwin)将解决大约 95% 的 cpan 安装问题。

【讨论】:

  • Perl 使用make(或nmakedmake)来安装纯Perl 模块。
  • 你说得对。我确实记得 ActiveState 的 Perl 版本可以安装 Pure-Perl 包,但这可能是因为我的系统上安装了 VisualStudio(和 nmake)。
【解决方案2】:

我已经尝试了 5 次。

计算机是确定性的东西。这意味着,除非你改变程序运行的条件,否则它总是会做同样的事情(除非有太阳耀斑或 EMP)。

因此,发出相同的命令一次和五次没有区别。如果第一次失败,ceteris paribus,它填充失败五次。

也就是说,您似乎安装了 ActiveState Perl,但没有安装提供基于 gccdmake 的构建工具的 MinGW package

所以,

C:\>ppm 安装 MinGW

然后尝试安装包。

您还可以选择 building your own perl 使用 Microsoft Visual Studio 2013 工具的社区版或任何其他受支持的编译器。

【讨论】:

  • 这意味着,除非你改变程序运行的条件,否则它总是会做同样的事情 哦,我希望我能同意你的观点......在我的经验,你可以在同一台机器上做同样的事情,得到不同的结果。我不知道我尝试了多少次,它不起作用,我给 IT 部门的人打电话,告诉他们什么不起作用,但该死的东西很好用。我通常会告诉 IT 人员无论如何都要为它付出代价,而不是将其记录到 ID 代码 10-T
猜你喜欢
  • 2011-10-25
  • 1970-01-01
  • 2011-09-22
  • 2014-02-18
  • 1970-01-01
  • 1970-01-01
  • 2013-06-30
  • 2011-10-10
  • 2011-03-29
相关资源
最近更新 更多