py2exe

作者: 辰1010 | 来源:发表于2019-05-14 17:00 被阅读0次
    • 下载对应python版本的 pywin32

    • 安装虚拟环境(为了避免exe文件过大,在虚拟环境里操作)

      • 安装virtualenv
        • pip install virtualenv
      • 安装virtualenvwrapper
        • pip install virtualenvwrapper-win

        • linux系统pip install virtualenvwrapper

        • 默认创建的虚拟环境位于C:\Users\username\envs,可以通过环境变量 WORKON_HOME 来定制
          • 系统变量中新建“变量名”:WORKON_HOME,变量值:“你自定义的路径”
        • 创建虚拟环境
          • mkvirtualenv 环境名
        • 列出所有虚拟环境
          • lsvirtualenv
        • 激活虚拟环境
          • workon 环境名
        • 进入虚拟环境的目录
          • cdvirtualenv
        • 停止虚拟环境
          • deactivate
        • 删除虚拟环境
          • rmvitualenv 环境名
    • 虚拟环境安装转exe的第三方库pyinstaller

      • pip install pyinstaller
      • 在虚拟环境里安装py文件所需的三方库

    • 如果代码里导入了外部文件

      • 在代码中加入下面的代码
      • 根据自己需要更改
      • import os
        #生成资源文件目录访问路径
        def resource_path(relative_path):
            if getattr(sys, 'frozen', False): 
                base_path = sys._MEIPASS
            else:
                base_path = os.path.abspath(".")
            return os.path.join(base_path, relative_path)
        #将代码中需要的文件放到一个文件夹中导入(res),以便将这些文件加入到exe文件中
        filetxt = resource_path(os.path.join("res","file.txt"))
        fileimg = resource_path(os.path.join("res","file.png")) 
        
      • 当使用PyInstaller打包程序选择的是单文件夹打包时,PyInstaller会 将文件夹的路径信息存储在sys._MEIPASS中,sys._MEIPASS的值就是程序运行时创建_MEIxxxxxx临时目录的绝对路径
    • 生成spec文件

      • 进入文件根目录,命令行输入pyi-makespec 文件名
      • 添加图标
        • pyi-makespec --icon abc.ico -F test.py
    • 修改spec文件

      • res文件夹以元祖形式添加到a.datas

      • 将当前目录下的res目录所有文件加入目标exe中(第一个参数),在运行时放在临时文件的根目录下,名称为res(第二个参数)

      • a = Analysis(['snake.py'],
                     pathex=['C:\\Users\\zhang\\Desktop\\snake'],
                     binaries=[],
                     datas=[('res','res')],
                     hiddenimports=[],
                     hookspath=[],
                     runtime_hooks=[],
                     excludes=[],
                     win_no_prefer_redirects=False,
                     win_private_assemblies=False,
                     cipher=block_cipher,
                     noarchive=False)
        
    • 生成exe文件

      • pyinstaller -F -w -i a.ico test.spec
        • -F 单个exe文件
        • -w exe运行时不执行命令行
        • -i 添加图标文件a.ico

    相关文章

      网友评论

          本文标题:py2exe

          本文链接:https://www.haomeiwen.com/subject/psleaqtx.html