qinglangee 发表于 2011-02-15 18:50

ActiveState Perl Dev Kit的perlapp生成exe就报错

本帖最后由 qinglangee 于 2011-02-16 22:49 编辑

perlapp不知道有用过的没有

.pl脚本文件没问题,能运行
生成exe时勾上 Make dependent executable也没问题,跟脚本一样运行

但生成独立exe程序,就不能运行了
Can't locate object method "new" via package "HTML::TreeBuilder::XPath" at /<D:\temp\aaa.exe>Web/Scraper.pm line 124.


-------------------------
根据二楼的方子搞定了
use HTML::TreeBuilder;
use HTML::TreeBuilder::XPath;
两行都加上,又出了个找不到的模块,装上就好了

zhlong8 发表于 2011-02-15 19:51

加上 use HTML::TreeBuilder::XPath 这个模块估计是动态导入的,没被识别出来

qinglangee 发表于 2011-02-15 21:04

试了下,加上也是不行

socyno 发表于 2011-02-15 21:35

难道加过了还是同样的错误????

qinglangee 发表于 2011-02-15 21:38

难道加过了还是同样的错误????
socyno 发表于 2011-02-15 21:35 http://bbs.chinaunix.net/images/common/back.gif

是一样的

socyno 发表于 2011-02-15 22:06

回复 5# qinglangee


    就这个错误来看似乎也确实不像是这个模块没有打包,而似乎找不到 new 这个方法, 我看了看源码

发现个怪怪的地方,不知道有没有关系, 可以尝试去掉第二个试试看会不会有用:

package HTML::TreeBuilder::XPath;
use List::Util qw( first);

use strict;
use warnings;

use vars qw($VERSION);

$VERSION = '0.12';

my %CHAR2DEFAULT_ENT= ( '&' => '&amp;', '<' => '&lt;', '>' => '&gt;', '"' => '&quot;');
my %NUM2DEFAULT_ENT= ( '38' => 'amp', '60' => 'lt', '62' => 'gt', '"' => '&quot;');

package HTML::TreeBuilder::XPath;
use base( 'HTML::TreeBuilder');

qinglangee 发表于 2011-02-15 22:38

回复 6# socyno

试过了,也不行

zhlong8 发表于 2011-02-16 11:42

你 use HTML::TreeBuilder 了吗?这个模块的 new 应该是继承自它的

socyno 发表于 2011-02-16 19:59

回复 8# zhlong8


    我想应该不是这个问题,既然 HTML::TreeBuilder 没有打包的话,那么程序运行到 use base ('HTML::TreeBuilder') 的时候就应该会报错的吧,而不是等到调用 HTML::TreeBuilder::XPath->new() 的时候才报错

socyno 发表于 2011-02-16 20:34

回复 8# zhlong8


    我刚才自己试了下,还真是这个问题,挺奇怪的
页: [1] 2
查看完整版本: ActiveState Perl Dev Kit的perlapp生成exe就报错