zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【python】【pycharm】pyinstaller+python工程打包成exe/绿色免安装的文件夹+在windows下自动定时运行

2023-09-11 14:16:50 时间

一、pyinstaller打包python工程

python3打包成exe---pyinstaller方法:https://blog.csdn.net/qq_20265805/article/details/105108726

1.1、打包项目为绿色免安装的文件夹

直接执行:pyinstaller main_file.spec 即可

执行后 生成的dist文件夹下的数据 就是打包后的项目数据了(直接压缩发给别人 别人解压后就可以运行)

以下是main_file.spec 文件代码 (直接复制  仅修改对应注释的数据即可)

# -*- mode: python -*-

block_cipher = None

a = Analysis(['E:\\codecontrol\\control.py'], # 入口py文件
             pathex=['E:\\codecontrol'], # 入口py文件所在路径
             binaries=[],
             datas=[
                 ('E:\code\dao\e.db','.'), # 添加的资源文件(“.” 表示把e.db这个资源 添加到与生成的exe文件所在的路径中)
                 ('E:\code\image\logo.png','.') # 添加第2个资源文件
             ],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)

pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

exe = EXE(pyz,
          a.scripts,
          [],
          exclude_binaries=True,   # 这里是True
          name='test', # 生成的exe文件名称(不含后缀)
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=False, # True为打包黑窗口,False不打包黑窗口
          icon='E:\codeimage\logo.ico') # 生成的exe文件logo图(需ico格式)

coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name='test')  # 生成的exe文件 所在的文件夹名称

1.2、打包为单个exe文件

直接执行:pyinstaller main_file.spec 即可

执行后 生成的dist文件夹下exe文件 就是打包后的项目数据了(直接把exe文件发给别个就可以使用了)

以下是main_file.spec 文件代码 (直接复制  仅修改对应注释的数据即可)

# -*- mode: python -*-

block_cipher = None

a = Analysis(['E:\\Code\\GitHub\\NavicatCrack\\main.py'], # 入口py文件
             pathex=['E:\\Code\\GitHub\\NavicatCrack'], # 入口py文件所在路径
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)

#######!!!注意点1:加载自己的资源文件(若没有 则可以不用管)#####################
def extra_datas(mydir):
    def rec_glob(p, files):
        import os
        import glob
        for d in glob.glob(p):
            if os.path.isfile(d):
                files.append(d)
            rec_glob("%s/*" % d, files)
    files = []
    rec_glob("%s/*" % mydir, files)
    extra_datas = []
    for f in files:
        extra_datas.append((f, f, 'DATA'))
    return extra_datas

# append the 'Resources' dir
a.datas += extra_datas('Resources')    ###这里是自己的资源文件夹
a.datas += extra_datas('Reports')      ###这里是自己的资源文件夹
a.datas += extra_datas('Drivers')     ###这里是自己的资源文件夹
########################################################################

pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

exe = EXE(pyz,
          a.scripts,
          a.binaries, ###!!!注意点2
          a.zipfiles, ###!!!注意点2
          a.datas,    ###!!!注意点2
          [],
          exclude_binaries=False,   ###!!!注意点3:这里是False
          name='NavicatCrack', # 生成的exe文件名称(不含后缀)
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True, # True为打包黑窗口,False不打包黑窗口
          icon='E:\\资源\\图片\\logo.ico') # 生成的exe文件logo图(需ico格式)

 

 

二、在windows下自动定时运行

在windows下自动运行:只需把dist文件夹中的“.exe‘文件添加到windows的”Windows 任务计划程序“中即可