生成WordNet DB文件出错:Windows下Pyrouge执行遇DB_File安装问题
解决Windows下安装Perl DB_File模块失败的问题
这个问题在Windows环境下安装Perl的DB_File模块时非常常见——因为DB_File依赖Berkeley DB的开发库,而默认的CPAN安装过程找不到这些依赖文件。下面提供两种可行的解决办法,按优先级推荐:
方法1:用ActivePerl的PPM安装预编译模块(最省心)
从你的路径C:/Perl64来看,你应该使用的是64位ActivePerl,这种情况下直接用ActiveState的Package Manager(PPM)安装预编译好的DB_File模块是最快的:
- 打开命令提示符(CMD),切换到Perl的bin目录:
cd C:\Perl64\bin - 运行PPM命令安装DB_File:
ppm install DB_File - 如果遇到仓库找不到模块的情况,先添加对应版本的ActiveState官方仓库(替换下面的版本号为你Perl的实际版本,用
perl -v查看):
比如你的Perl是5.24版本,就用上面的地址;如果是5.28,就把路径里的ppm repo add ActiveState http://ppm4.activestate.com/MSWin64/5.24/1000/5.24改成5.28。
方法2:手动编译安装(需要Berkeley DB开发文件)
如果PPM无法使用,就需要手动准备Berkeley DB的开发依赖,再通过CPAN编译安装:
- 下载匹配的Berkeley DB开发包:
- 选择和你Perl位数一致的版本(64位),推荐Berkeley DB 4.8.x系列(和你要安装的DB_File 1.841兼容性最好)
- 解压到一个不含中文和空格的路径,比如
C:\BerkeleyDB\4.8,确保解压后能看到include\db.h头文件和lib\libdb48.lib库文件
- 设置环境变量让编译器找到依赖:
在CMD中运行以下命令(临时生效,关闭CMD后会失效):set INCLUDE=C:\BerkeleyDB\4.8\include;%INCLUDE% set LIB=C:\BerkeleyDB\4.8\lib;%LIB% - 重新运行CPAN安装命令:
cpan -i DB_File - 配置动态库路径:
安装完成后,找到Berkeley DB解压目录里的libdb48.dll文件,复制到C:\Perl64\bin目录下,或者把该dll所在路径添加到系统的PATH环境变量中,避免后续运行脚本时找不到动态库。
验证安装
安装完成后,运行以下命令验证DB_File是否成功安装:
perl -e "use DB_File; print 'DB_File installed successfully!'"
如果没有报错并输出成功提示,就可以回到pyrouge的命令重新生成wordnet db文件了。
内容的提问来源于stack exchange,提问作者K.cyrine
相关产品推荐
相关产品推荐

