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