使用py2exe打包的python解释器

时间:2011-07-12 12:57:06

标签: windows py2exe python

大家好,这是我在stackOverflow上的第一个问题,不幸的是,这是一个奇怪的问题。

我有一个我要发布到Windows的python脚本,人们可能没有安装python。所以我使用py2exe。问题在于脚本我使用子进程运行其他python脚本,这需要python解释器作为要执行的程序。由于我没有在Windows上安装python解释器,有什么办法可以忽略解释器并解决问题吗?有什么方法可以调用py2exe的python解释器吗?

1 个答案:

答案 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应用程序那样“安装”。实际上,您只需将所有文件复制到新位置即可。只要搜索路径正确,就可以了。