【问题标题】:Can't locate module in @inc after installing it with PPM使用 PPM 安装后无法在 @inc 中找到模块
【发布时间】:2017-02-21 10:39:51
【问题描述】:

我正在运行 Windows 8。我刚刚下载了 ActivePerl,并且正在通过 Padre 运行代码。我使用 PPM 安装所需的模块,但是当我尝试运行代码时,我收到错误“无法找到 Tk.pm”。模块是否安装在错误的位置?如何找到模块?

编辑:我不确定问题出在哪里,我可能永远也不会知道。我卸载了 perl,重新启动计算机,再次安装,一切正常。

【问题讨论】:

  • 你能安装两个 Perl 吗?
  • 模块安装成功了吗?它完成制作了吗?这个很模糊,如果你能把安装日志的输出贴出来,我们就更容易看出哪里出了问题。
  • @Gerry,ppm 几乎只是解压缩预编译的包。如果包存在,那么失败是不可能的。
  • @ikegami,正确的是,但我在 Windows 上看到它有时会在制作时失败,因此问题。
  • @Gerry,ppm 不使用make。同样,ppm 几乎只是解压缩预编译的包。如果包存在,则实际上不可能发生故障。因此,我已经回答了您的问题(两次)。

标签: perl installation


【解决方案1】:

模块是否安装在错误的位置?

不,据我所知,ppm 无法做到这一点。

想到了三种可能性。

  • 您使用一个 perl 安装了模块,但在使用 Padre 时使用的是不同的。 (解决方案:使用正确的 Perl 安装模块,即在该 Perl 的 bin 目录中使用 ppmcpan。)

  • 存在某种权限问题,无法找到该模块。 (如果您使用与尝试使用它的用户相同的用户安装模块,则不太可能。)

  • 安装失败。 (你遇到了什么错误?)


如果您需要进一步的帮助,能否提供dir /s/b c:\Tk.pm 的输出和perl -le"print $^X" 的输出?

【讨论】:

    【解决方案2】:

    您可以尝试手动查看 Perl lib 文件夹,通常它们会出现在您安装 ActivePerl 的目标目录中。像 C:\Perl\lib 和 C:\Perl\site\lib。尝试在这些位置搜索模块。

    您也可以在 cmd - perl -e "use Tk" 中使用此命令。您也可以参考以下link 了解更多检查系统中是否安装模块的选项。

    【讨论】:

    • 然后呢?你要去哪里?
    • 查看模块是否安装。在上述查询的情况下应该做什么。
    • 然后呢?你要去哪里?
    • 那你就知道是否安装成功了。供您参考,问题是 - 模块是否安装在错误的位置?如何找到模块?
    • Re "那你就知道是否安装成功了。",所以你认为他们说他们使用ppm安装模块是错误的吗?我觉得这很难相信。
    【解决方案3】:

    以下是检查安装是否正常的方法,只是一种解决方法,在生产中使用之前请三思。

    首先,检查您的硬盘中是否存在Tk.pm。一种方法是安装Everything 并搜索该文件。 如果文件存在,并且在"C:/some_path/TK.pm"等目录中

    然后在脚本中,通过use lib 'C:/some_path'指定路径,这会将'C:/some_path'添加到perl模块搜索路径中。那么use Tk应该就OK了。

     use lib 'C:/some_path';
     use Tk;
     print join ", ", @INC; # see the search path
    

    【讨论】:

    • 唯一可能完成的事情是让一个perl 使用另一个perl 安装的模块,这很糟糕。请记住,该模块是由ppm 安装的,而不是cpan/cpanm,因此(据我所知)它不可能安装在“不正确”的位置。
    猜你喜欢
    • 2019-07-27
    • 2013-05-19
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 2016-06-04
    • 2019-07-17
    相关资源
    最近更新 更多