windows - 使用py2exe自带的python解释器

标签 windows py2exe python

我有一个 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/

相关文章:

windows - 将非 unicode 库与 unicode 构建的应用程序一起使用的含义

php - 如何在 Windows 上使用 PHP 发送电子邮件?

c - udp 套接字中接收缓冲区/队列的最大大小

python - 为 Tk().iconbitmap() 使用类似对象的文件

python - Py2exe - Pmw WindowsError : [Error 3]

python - pip3 输出换行符而不是安装

python - 如何在退出时调试 PyQt5 appcrash

python - 使用 PyGraphviz 在图形\节点上绘制更多信息

python - 将 datetime64[ns, UTC] Pandas 列转换为日期时间

Python 继承 - 一个调用在子类中重写的方法的构造函数,使用哪个方法?