Python 把脚本编译打包成EXE文件 —— pyinstaller 的安装和使用

简介: Python 把脚本编译打包成EXE文件 —— pyinstaller 的安装和使用

安装 pyinstaller


要把Python脚本编译打包成.exe可执行文件,需要安装 pyinstaller.exe 。


打开windows控制台窗口cmd.exe,执行以下命令,Python会自动网络下载并安装。


   Microsoft Windows [版本 6.1.7601]

   版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

   C:\Users\Administrator>cd C:\Program Files\Python37

   C:\Program Files\Python37>python -m pip install pyinstaller

   ......略去N行......

 

Successfully installed altgraph-0.17 future-0.18.2 importlib-metadata-3.7.3 pefi
    le-2019.4.18 pyinstaller-4.2 pyinstaller-hooks-contrib-2021.1 pywin32-ctypes-0.2
    .0 typing-extensions-3.7.4.3 zipp-3.4.1


安装完成后,pyinstaller.exe在scripts目录下:


 

C:\Program Files\Python37>scripts\pyinstaller
    usage: pyinstaller [-h] [-v] [-D] [-F] [--specpath DIR] [-n NAME]
                       [--add-data <SRC;DEST or SRC:DEST>]
                       [--add-binary <SRC;DEST or SRC:DEST>] [-p DIR]
                       [--hidden-import MODULENAME]
                       [--additional-hooks-dir HOOKSPATH]
                       [--runtime-hook RUNTIME_HOOKS] [--exclude-module EXCLUDES]
                       [--key KEY] [-d {all,imports,bootloader,noarchive}] [-s]
                       [--noupx] [--upx-exclude FILE] [-c] [-w]
                       [-i <FILE.ico or FILE.exe,ID or FILE.icns or "NONE">]
                       [--version-file FILE] [-m <FILE or XML>] [-r RESOURCE]
                       [--uac-admin] [--uac-uiaccess] [--win-private-assemblies]
                       [--win-no-prefer-redirects]
                       [--osx-bundle-identifier BUNDLE_IDENTIFIER]
                       [--runtime-tmpdir PATH] [--bootloader-ignore-signals]
                       [--distpath DIR] [--workpath WORKPATH] [-y]
                       [--upx-dir UPX_DIR] [-a] [--clean] [--log-level LEVEL]
                       scriptname [scriptname ...]
    pyinstaller: error: the following arguments are required: scriptname




编译Python脚本


pyinstaller -F exam.py



生成的exam.exe在dist目录下,用Python官网首页的第一个示例来测试下:

# Python 3: Fibonacci series up to n
def fib(n):
    a, b = 0, 1
    while a < n:
        print(a, end=' ')
        a, b = b, a+b
    print()
fib(1000)
'''
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
'''


编译过程会在源码目录下生成一个目录__pycache__,exam.exe在dist子目录下,文件大小5.6M,运行结果:


   C:\Program Files\Python37\Scripts\dist>exam

   0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987


编译时不带参数 -F ,将在 dist 目录下生成一个同名子目录,exam.exe在其中,还有很多其它文件,最主要的是 base_library.zip 和 python37.dll , 版本不同数字37也不同。


如用 tkinter 库生成一个简单的GUI窗口程序,文件更大,8.4M,源码及运行结果如下:

import tkinter
win = tkinter.Tk()
win.title('myWin')
win.geometry("640x480")
win.mainloop()

20210317122929242.png


程序会带有一个控制台的黑窗口,编译时多用一个参数  -w 或 --noconsole 即可去掉。

1. pyinstaller -F -w exam.py
2. 或者:
3. pyinstaller -F exam.py --noconsole



生成的可执行文件有点大,参数 [--upx-dir UPX_DIR]  和 [--clean] 可用于压缩和清理。具体用法见:

https://blog.csdn.net/xinyingzai/article/details/80282856


Pyinstaller 打包发布经验总结:

https://blog.csdn.net/weixin_42052836/article/details/82315118



另外一个.py转.exe的工具: PY2EXE


py2exe is a Python Distutils extension which converts Python scripts into executable Windows programs, able to run without requiring a Python installation.


官方网站:

http://www.py2exe.org/


下载地址:

https://pypi.org/project/py2exe/

py2exe仅适用于Windows平台。


附:upgrade pip


You are using pip version 10.0.1, however version 21.0.1 is available.

You should consider upgrading via the 'python -m pip install --upgrade pip' command.

C:\Program Files\Python37>python -m pip install --upgrade pip

Collecting pip

 Downloading https://files.pythonhosted.org/packages/fe/ef/60d7ba03b5c442309ef4

2e7d69959f73aacccd0d86008362a681c4698e83/pip-21.0.1-py3-none-any.whl (1.5MB)

   37% |████████████▏                   | 583kB 37kB/s eta 0:00:26

   38% |████████████▍                   | 593kB 37kB/s eta 0:00:26

   39% |████████████▋                   | 604kB 32kB/s eta 0:00:29

   39% |████████████▊                   | 614kB 22kB/s eta 0:00:41

   。。。省去N行。。。

 

   97% |███████████████████████████████▎| 1.5MB

   98% |███████████████████████████████▌| 1.5MB

   99% |███████████████████████████████▊| 1.5MB

   99% |████████████████████████████████| 1.5MB

   100% |████████████████████████████████| 1.5M

B 18kB/s

Installing collected packages: pip

 Found existing installation: pip 10.0.1

   Uninstalling pip-10.0.1:

     Successfully uninstalled pip-10.0.1

Successfully installed pip-21.0.1

C:\Program Files\Python37>



目录
相关文章
|
1月前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
17天前
|
数据采集 存储 监控
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
61 7
21个Python脚本自动执行日常任务(2)
|
6天前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
52 5
|
10天前
|
计算机视觉 Python
如何使用Python将TS文件转换为MP4
本文介绍了如何使用Python和FFmpeg将TS文件转换为MP4文件。首先需要安装Python和FFmpeg,然后通过`subprocess`模块调用FFmpeg命令,实现文件格式的转换。代码示例展示了具体的操作步骤,包括检查文件存在性、构建FFmpeg命令和执行转换过程。
34 7
|
24天前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
33 7
|
29天前
|
监控 数据挖掘 数据安全/隐私保护
Python脚本:自动化下载视频的日志记录
Python脚本:自动化下载视频的日志记录
|
2月前
|
Linux 区块链 Python
Python实用记录(十三):python脚本打包exe文件并运行
这篇文章介绍了如何使用PyInstaller将Python脚本打包成可执行文件(exe),并提供了详细的步骤和注意事项。
90 1
Python实用记录(十三):python脚本打包exe文件并运行
|
3月前
|
存储 Shell 区块链
怎么把Python脚本打包成可执行程序?
该文档介绍了如何将Python脚本及其运行环境打包成EXE可执行文件,以便在不具备Python环境的计算机上运行。首先确保Python脚本能够正常运行,然后通过安装PyInstaller并使用`--onefile`参数将脚本打包成独立的EXE文件。此外,还提供了去除命令行窗口和指定可执行文件图标的详细方法。这些步骤帮助用户轻松地将Python程序分发给最终用户。
怎么把Python脚本打包成可执行程序?
|
4月前
|
区块链 Python
Python脚本打包 exe,auto-py-to-exe来帮你!
Python脚本打包 exe,auto-py-to-exe来帮你!
|
6月前
|
存储 区块链 Python
怎么把Python脚本打包成可执行程序?
最近根据用户提的需求用python做了一个小工具,但是在给客户使用的时候不能直接发送python文件,毕竟让客户去安装python环境,那就离了大谱了。所以这时候就需要把多个py文件带着运行环境打包成EXE可执行文件。
怎么把Python脚本打包成可执行程序?