py2exe 生成的代码执行结果与原python代码不同,py2exepython,我写了个python脚本


我写了个python脚本,用于给Windows平台的客户使用,但是打包生成 exe 格式后发现执行与预期不同,一番调试后发现在exe版程序中一个dns解析结果中的IP显示不正常

直接执行 .py 版的程序,这个红色圈起来的地方正确显示的是个IP
相关代码如下

ns = '114.114.114.114'r = dns.resolver.Resolver()r.nameservers = [ns]try:    q = r.query(name, 'A')    print(str(q.response))    if any([i in str(q.response) for i in ip]):    # 检查dns解析结果是否包含正确的ip,exe版程序在这里由于结果中ip字符串被解析为奇怪的16进制导致判断失败        set_dns()    else:        print(u'resolve failed不能使用114dns')        set_hosts()except (dns.resolver.NoAnswer,dns.exception.Timeout) as e:    print(u'exception, 不能使用114dns')    set_hosts()

这个好像跟编码有关系,但是还是没有什么头绪。
也不知道该使用怎样的关键字在网上搜索。所以请教高明……

PS:
我把红圈中的字符串 '4 b781b2f5' 加入到 ip list 中,生成的 exe 程序在

if any([i in str(q.response) for i in ip]) 

这个判断中就会成功.

编橙之家文章,

评论关闭