PyInstaller做什么以及它如何使用 — PyInstaller 3.4文档

分享于 

3分钟阅读

Python

 

引导装载程序是一个文件包的核心。 当启动时,它在这个操作系统的适当临时文件夹位置创建一个临时文件夹。 文件夹名为 _MEIxxxxxx ,xxxxxx xxxxxx xxxxxx是一个随机编号。

这个可执行文件包含了脚本使用的所有 python 模块的嵌入式归档,以及任何非python支持文件( 比如 )的压缩副本。 .so文件加载程序解压缩支持文件并将副本写入临时文件夹。 这可能需要一点时间。 这就是为什么一个文件应用程序比一个文件夹应用程序要慢一点。

创建临时文件夹后,引导程序将完全按照临时文件夹上下文的一个文件夹包进行。 当捆绑的代码终止时,引导装载程序将删除临时文件夹。

( 在Linux和相关系统中,可以使用"无执行"选项安装 /tmp文件夹。 这里选项与一个 PyInstaller 一个文件包。它需要从 /tmp中执行代码。)

因为程序使一个临时文件夹具有唯一的NAME,所以可以运行多个应用程序,它们不会干扰。 但是,在磁盘空间中运行多个副本是很昂贵的,因为没有共享任何内容。

iPhone 7 还没出来,我们已经在iPhone上获取细节 8,或者不管是想到下一步。 _MEIxxxxxx 如果程序崩溃或者终止( 在Unix上杀死 -9,被 Windows的任务经理杀死"强制退出"。在Mac操作系统上),则不会删除文件夹。 因此,如果应用程序频繁崩溃,用户将会丢失磁盘空间 _MEIxxxxxx 临时文件夹。

可以控制的位置 _MEIxxxxxx 使用 --runtime-tmpdir命令行 选项的文件夹。 指定的路径存储在可执行文件中,引导装载程序将创建 _MEIxxxxxx 指定文件夹内的文件夹。 请参见 定义提取位置 详细说明。

便笺

执行以下操作:将管理员权限授予一个文件可执行文件( 。root/linux中的setuid,或者"作为管理员"。Windows 7中的属性) 运行该程序。 恶意攻击者可以能会损坏临时文件夹中的一个共享库,而引导程序正在准备它。 在一个文件夹模式中分发特权程序。

便笺

使用的应用程序 os.setuid( ) 可能遇到权限错误。运行捆绑应用程序的临时文件夹可能无法读取 setuid 如果你的脚本需要调用 setuid 最好使用一个文件夹模式,以便更多地控制它的文件的权限。


相关文章