py2exe 生成的代码执行结果与原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]) 

这个判断中就会成功.

以上是 py2exe 生成的代码执行结果与原python代码不同 的全部内容, 来源链接: utcz.com/a/162477.html

回到顶部