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