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

很多时候,我们在自己电脑上用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

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

猜你喜欢

转载自blog.csdn.net/oYeZhou/article/details/81035555