py2exe - 生成的可执行文件在连接套接字时冻结

1 投票
1 回答
682 浏览
提问于 2025-04-15 11:57

请原谅我的无知,因为我还是编程初学者。

我正在尝试把我写的一个Python脚本转换成Windows可执行程序,使用的是py2exe。不过,虽然我成功地转换了这个脚本,但生成的可执行文件似乎并不能完全正常工作。

经过多次调试,我找到了问题所在,下面的代码似乎是问题的根源:

host = str(raw_input('Enter Host IP Address: ')) 
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((host, 5000))

当我在Pydev中直接运行这个脚本时,问题就不会出现,脚本可以正常运行。但是,当我用这个Windows可执行文件(这是一个控制台应用程序)尝试连接到另一个主机时,它就会 卡住

这是一个已知的问题,还是我做错了什么?任何帮助都非常感谢。

1 个回答

1

你能输入IP地址吗?根据那条讨论,看起来py2exe需要一个特别的参数来启动控制台。否则,raw_input会尝试从标准输入读取内容,但找不到任何东西,就会卡住或者崩溃。

考虑到这条讨论的时间比较久,我查了一下py2exe的文档:你可以试着把你的脚本放在console属性里。

我真的觉得这个问题和raw_input有关,而不是因为socket操作引起的。

撰写回答