欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

利用pyinstaller工具将Python脚本打包生成exe文件

程序员文章站 2022-06-04 16:34:31
...

很多时候,我们在自己电脑上用Python写了一个小程序,想要分享给其他人,可是对方电脑又没有Python环境。这个时候,就可以把你的程序打包成一个exe文件,然后就可以愉快地在他人电脑上运行了。

打包的方法,网上很多,目前主流的是用pyinstaller。值得注意的是,pyinstaller不是一个python包,不需要使用import导入。只需安装之后,在命令行中使用命令即可打包。

安装方式:

pip install pyinstaller

打包方式:

pyinstaller -F 你的脚本名称.py

-F指将源程序打包成一个单独的exe文件,我喜欢这样做。

此外,还有其他参数,如:-d/-c/-w等,你可以使用:

pyinstaller -h

来查看各种参数及其作用。

下面讲一下我的一个实例。

我写了一个随机事件的小程序,打包成exe文件,经过漫长的打包过程,终于完成了,结果发现短短几行代码打包出来竟然有200多M大小!

这绝对不科学!

仔细看了看脚本中导入的几个包,发现问题可能出在导入的包上:

为了实现随机取数,我一开始用了NumPy包中的random。而NumPy这个包是很大的!

然后,替换为了一个轻量级随机包:random。

再次打包,结果生成的exe文件大小降为了6M,而且打包过程飞快!

可见:pyinstaller在打包时,会把你所导入的包及其依赖都一起打包进exe中,以便于在其他电脑上运行。因此,我们写源程序时应尽量避免使用较大的包,多用轻量级的方式完成所需功能!

现附上我写的一个小程序:《拯救纠结症患者》。

import time
import os
import random 
def clear():os.system('cls')

print("===================== 拯救纠结症患者 ============================")
print("使用说明:\n1、指定候选项个数\n2、依次输入每个个选项的内容\n3、程序替你选择一个答案~\n")

while 1:
    flag=0
    while flag ==0:
        try:
            num = int(input("你有多少个选择需要纠结:"))
            flag=1
        except:
            print('输入格式错误,重新输入!')
    
    choices=[]
    for i in range(num):
        print('请输入选项',i+1,": ",end='')
        choices.append(input())  
    
    ch=random.randint(0,2)
    
    print("程序正在纠结")
    for i in [0,1,2,3,4]:
        time.sleep(0.5)
        print("     。")
    print ('')
    clear()
    print("程序经过纠结,替你选择了: "+choices[ch])
    
    print("================================================================")
    while 1:
        print("输入数字,选择下一步操作:\n1、我还有一个新的纠结\n2、退出程序")
        j = input("输入1或2:")
        if j=='1' or j=='2':
            break
        else:
            continue
    
    if j=='1':
        continue
    else:
        break

print('正在退出,期待下次为您纠结!')
time.sleep(3)

打包后的exe文件可以下载试用:

链接: https://pan.baidu.com/s/1IudWMqz8meInTKfBvXK6Eg 密码: 7hrc

大家有什么疑问或者有什么好的想法,欢迎讨论!