【问题标题】:Making cpan run properly on windows 10使 cpan 在 Windows 10 上正常运行
【发布时间】:2019-03-13 23:57:14
【问题描述】:

我正在尝试使 cpan 在 windows 10 专业版上工作。 我安装了 Perl 5.26 以及 dmake。但是每当我尝试安装任何东西时
它出现了错误。为了正确运行 cpan,我还需要什么?

我收到类似警告的错误:处理时“AUDREYT/methods-0.12.tar.gz”的先决条件“invoker => 0”失败

而且它还缺少链接命令。 是否可以让 cpan 在 Windows 上正常工作,或者我应该让它保持原样,只使用预编译模块? 这是尝试安装 Inline::Python 的输出。 我把它放在pastebin上,因为它相当长: 命令是

    install Inline::Python  

pastebin

【问题讨论】:

  • 您使用的是 Active State 的 Perl 版本还是草莓 Perl 或其他版本?
  • 另外,您要安装什么模块,您实际收到了哪些错误消息?请将它们粘贴在这里而不是描述它们。
  • 对不起,我上面更新了,我正在使用活动状态的 perl。
  • 我已经更新了我对您尝试使用的模块的回复。 Inline::Python 无法在 Windows 上运行。但是您的 pastebin 不包含您的上述错误消息,所以也许还有其他问题?!

标签: windows perl cpan


【解决方案1】:

根据您的模糊描述,我假设构建工具(编译器、链接器)在您的开发机器上不可用。如果您告诉我们您尝试安装的模块名称和您用来安装的命令,我们可能会提供更好的答案,这对您也有帮助。请同时发布您收到的确切错误消息。

Strawberry Perl 附带 C 编译器和链接器。

对于 ActiveState Perl,您可以通过在命令行输入以下命令来安装它们:

ppm install MinGW

关于您的更新,您正在安装 Inline::Python,但它对您来说失败了:

        2. LIBRARY option. The location of the python library.
           Inline::Python needs to link against it to use Python.

        Here are the libraries I know about:
           1) C:/Python26/libs/python26.lib

Which? Or enter another. [1] C:\ProgramData\Anaconda3
...
Using These Settings:
   Extra Libs:
   Python Lib:  -LC:/ProgramData Anaconda3
   Includes:    -IC:/Python26/include
   Extra Flags: none (perl Makefile.PL --help for details)

这看起来不对:

   Python Lib:  -LC:/ProgramData Anaconda3

...
Warning (mostly harmless): No library found for Anaconda3

上述警告并非无害,因为它主要意味着 Inline::Python 正在寻找库 Anaconda3,这是错误的。

我的建议是您尝试使用正斜杠进入库:

Which? Or enter another. [1] C:/ProgramData/Anaconda3

或许

Which? Or enter another. [1] C:/ProgramData/Anaconda3/python

此外,如果您手动执行模块的安装步骤,您可以更好、更轻松地调试模块的安装和编译,但在开始之前,请参阅下文!在您的情况下,步骤是:

启动cpan 客户端

cpan

下载并解压 Inline::Python

look Inline::Python

运行Makefile.PL 构建过程

perl Makefile.PL
nmake
nmake test
nmake install

理想情况下,上述步骤均不应失败。

Proc::ProcessTable 也有同样的问题,这里的问题是这个模块不能在 Windows 上运行。我不知道为什么Inline::Python 依赖它,但除非你找到一个预编译的 Inline::Python for Windows,否则你将无法使用任何一个模块。

另见

ActiveState documentation

【讨论】:

  • ActivePerl会自动安装dmake+mingw
  • 谢谢,那我得再找个模块用了。
【解决方案2】:

根据您的更新 Active state 的 Perl 版本使用名为 ppm 的脚本从其存储库安装预编译包。如果您想要的模块不在他们的存储库中,那么您将被卡住。

在这种情况下,我建议安装 Strawberry Perl,它带有完整的工具链,可以处理任何使用 Windows 创建的 cpan 模块。

【讨论】:

  • 啊,所以不能用活动状态的perl版本运行cpan?
  • 它可能适用于纯 Perl 模块,但如果没有大量工作,您将遇到从 Perl 以外的源代码编译的任何问题
  • @Tobbes,你绝对可以。忽略 JGNI 的声明。
  • @ikegami 我想知道如何。您可以添加一个描述您将如何做的答案吗?
  • cpan Inline::Python。如果您没有 dmake 和 mingw,它会自动安装它们
猜你喜欢
  • 2021-10-29
  • 1970-01-01
  • 2012-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-14
  • 2015-10-25
  • 1970-01-01
相关资源
最近更新 更多