【问题标题】:Can't locate Class/CSV.pm in @INC在 @INC 中找不到 Class/CSV.pm
【发布时间】:2018-11-08 14:32:56
【问题描述】:

我试图在 Windows 上的 Perl 代码中使用 Text::CSV,但它给了我错误“无法在 @INC 中找到 Class/CSV.pm(您可能需要安装 class:CSV 模块”) . (@INC 包含 C:\Perl64\site\lib C:\Perl64\lib。)

我在 3 个不同的位置找到了 CSV.pm:C:\Perl64\lib\SQL\Dialects\CSV.pm、C:\Perl64\lib\DBD\CSV.pm 和 C:\Perl64\lib\Bundle\ DBD\CSV.pm。

然后我在程序本身中使用 lib 命令添加搜索路径,如下所示,但仍然得到相同的错误:

#!/usr/bin/env perl 
use lib 'C:\Perl64\lib\Bundle\DBD'; 
use Class::CSV; 
use Text::CSV;

我该如何解决这个错误? 谢谢。

【问题讨论】:

  • 从我看到的Class::CSV 是一个使用Text::CSV_XS 的不同模块。您是否检查过 Text::CSV 本身是否已安装? (然后尝试使用 use Text::CSV; 行)
  • Class::CSV 应该位于...\Class\CSV.pm
  • @zdim: 如何检查 Text::CSV 是否已安装?
  • @choroba:我在这 3 个不同的位置找到了 CSV.pm,但我没有看到 Class 文件夹:C:\Perl64\lib\SQL\Dialects\CSV.pm, C:\ Perl64\lib\DBD\CSV.pm 和 C:\Perl64\lib\Bundle\DBD\CSV.pm.
  • @faujong 这是因为你需要安装 Text::CSV 模块。 SQL::Dialects::CSV 和 DBD::CSV 都不是 Text::CSV。

标签: windows perl csv


【解决方案1】:
  1. 从您的程序中删除 use lib 行。不正确,不会有效果。

  2. 同时删除use Class::CSV。此模块未安装在您的计算机上,您不应安装它。它是Text::CSV 的一个非常古老、奇怪的包装器,几乎没有什么用处;直接使用Text::CSV即可。

【讨论】:

  • 我只有 Text::CSV;在我的 Perl 脚本的顶部,仍然收到相同的错误“Can't locate Class/CSV.pm in..”
  • 您确定您正在编辑正确的文件吗?您获得Can't locate Class/CSV.pm 的唯一方法是来自use Class::CSV
  • 我很抱歉.. 现在的错误是“Can't locate Text/CSV.pm in..”
  • 然后你需要安装Text::CSV,就像它说的那样。
  • 谢谢。我从code.activestate.com/ppm/Text-CSV 安装了 TEXT:CSV 模块,现在它可以工作了。谢谢。
猜你喜欢
  • 1970-01-01
  • 2020-10-14
  • 1970-01-01
  • 2017-07-13
  • 2021-03-03
  • 2013-10-24
  • 2018-01-11
  • 2020-07-15
  • 2021-11-17
相关资源
最近更新 更多