我有一个 python 脚本,我想分发到 Windows,人们可能没有安装 python。所以我使用py2exe。问题出在我使用子进程运行其他 python 脚本的脚本中,这需要 python 解释器作为要执行的程序。由于我没有在 Windows 上安装 python 解释器,有什么方法可以忽略解释器并解决问题?有什么方法可以调用由 py2exe 封装的 python 解释器吗?
最佳答案
它可能比您想象的更简单:不用启动子进程,而是使用内置的 eval()
命令来执行脚本。
[编辑] 要重定向 stdio,请替换 sys.stdout/sys.stderr带有缓冲区或其他支持“write()”的东西。
为了恢复原始值,sys
模块提供了__stdout__
等
[EDIT2] 我还没有尝试过,但它可能会起作用:将“python.exe”添加到 py2exe 创建的文件集中。
从主代码中,将 py2exe 创建的所有文件 + python.exe 复制到一个临时目录中。然后添加所有脚本。
现在用一个小脚本启动新的 python 解释器,该脚本将临时文件夹和 library.zip
添加到 sys.path
注意:Python 不必像 Windows 应用程序那样“安装”。事实上,您可以简单地将所有文件复制到一个新位置。只要搜索路径正确,就可以正常工作。
关于windows - 使用py2exe自带的python解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6664493/