大家好,这是我在stackOverflow上的第一个问题,不幸的是,这是一个奇怪的问题.
我有一个我要发布到Windows的python脚本,人们可能没有安装python.所以我使用py2exe.问题在于脚本我使用子进程运行其他python脚本,这需要python解释器作为要执行的程序.由于我没有在Windows上安装python解释器,有什么办法可以忽略解释器并解决问题吗?有什么方法可以调用py2exe的python解释器吗?
解决方法:
它可能比您想象的更简单:使用内置的eval()命令来执行脚本,而不是启动子进程.
[编辑]要重定向stdio,请用缓冲区或其他支持“write()”的内容替换sys.stdout/sys.stderr.
要恢复原始值,sys模块提供__stdout__等.
[EDIT2]我没试过这个但它可能有用:将“python.exe”添加到py2exe创建的文件集中.
从主代码中,将py2exe创建python.exe的所有文件复制到临时目录中.然后添加所有脚本.
现在使用一个小脚本启动新的python解释器,该脚本将temp文件夹和library.zip添加到sys.path
注意:Python不必像Windows应用程序那样“安装”.实际上,您只需将所有文件复制到新位置即可.只要搜索路径正确,这就有效.