在使用PPM进行安装后,无法在@inc中找到模块

问题描述:

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

编辑:我不确定问题是什么,我可能永远不会知道。我卸载Perl,重新启动我的电脑,再次安装它,一切正常。

+0

你可以有两个Perl的安装? – ikegami

+0

模块安装是否成功完成?它完成了吗?这是非常含糊的,如果你可以发布安装日志的输出,它会让我们更容易看到出了什么问题。 – 2017-02-20 06:07:15

+0

@Gerry,ppm几乎只是解压缩一个预编译的软件包。如果软件包存在,失败是不可能的。 – ikegami

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

你也可以使用cmd命令 - perl -e“use Tk”。您也可以参考以下link以获取有关检查模块是否安装在系统中的更多选项。

+0

然后呢?你要去哪里? – ikegami

+0

查找是否安装模块。在上述查询的情况下应该如何处理。 – Mohit

+0

然后呢?你要去哪里? – ikegami

下面是检查安装是否正常的方法,只是一种解决方法,在生产中使用它之前再考虑一下。

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

然后在剧本,通过use lib 'C:/some_path'指定路径,这将增加'C:/some_path'到perl模块搜索路径。那么use Tk应该没问题。

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

这个可能完成的唯一的事情就是让一个'perl'使用另一个'perl'安装的模块,这很糟糕。请记住,该模块是由'ppm'安装的,而不是'cpan' /'cpanm',所以(据我所知),它不能安装在“不正确的”位置。 – ikegami

难道模块得到安装在错误的位置?

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

想到三种可能性。

  • 您安装使用一个perl模块,但您使用时策略平台使用不同的一个。 (解决方法:安装使用正确的Perl模块,由Perl的bin DIR使用ppmcpan意思。)

  • 有某种权限问题的防止模块被发现。 (不太可能,如果您使用与试图使用它的用户相同的用户安装模块)。

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


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