0

我正在 Windows 上使用 wampserver 创建一个页面并在本地工作。我想访问数据库 Ensemble 以获取一些有用的信息,例如基因的序列,我遇到了以下问题:

我已经安装了 ActivePerl 和所需的 API,并且我的 bioperl 脚本可以在命令提示符下完美运行。

就 wampserver 而言,我已经在 Apache 中修改了 httpd.conf 以运行 perl 脚本。我可以通过 wamp 执行一个简单的 perl 脚本(例如 hello world)。(我将 id 存储在 www 并转到 localhost/hello.pl)

当我想在 wampserver 中运行脚本以获取序列(当然更复杂)时,我收到此错误:

install_driver(mysql) 失败:在@INC 中找不到 DBD/mysql.pm(@INC 包含:C:/wamp/bin/Perl/lib C:/wamp/bin/Perl/site/lib。C:/src /ensembl/modules) 在 (eval 8) 第 3 行。也许 DBD::mysql perl 模块尚未完全安装,或者“mysql”的大小写不正确。可用驱动程序:DBM、ExampleP、File、Gofer、Proxy、Sponge。在 C:/src/ensembl/modules/Bio/EnsEMBL/Registry.pm 第 1594 行

在命令提示符窗口中,脚本运行。我如何管理它以在 wampserver 中运行它?

提前感谢您的帮助

4

1 回答 1

0

@INC数组包含 Perl 查找模块的所有路径。目前,您的 WAMP Perl 会查看以下位置:

C:/wamp/bin/Perl/lib
C:/wamp/bin/Perl/site/lib
.
C:/src/ensembl/modules

这些目录都不包含一个子目录DBD,而该子目录又包含mysql.pm. (请使用文件管理器验证这一点)

你似乎已经用 ActivePerl 安装了这个模块。尝试打印出@INC那个 perl。如果 ActivePerl@INC包含未包含在 WAMP perl 中的路径@INC(见上文),那么您应该修复它以使用 ActivePerl 模块。例如

use lib 'C:/foo/bar/lib';

你面前use DBD::mysql。它可能会解决问题。

于 2012-09-20T00:40:02.163 回答