素材巴巴 > 程序开发 >

将py项目打包成exe文件

程序开发 2023-09-12 17:09:42

最近接手了一个任务,是修复一个已经离职了的同事的python代码BUG,代码修改好以后还需要打包成exe。

文章目录

  • II.在虚拟环境下打包项目
  • I.打包工具:

    1.Pyinstaller

    [参考文章:pyinstaller打包项目]
    安装Pyinstaller: pip install pyinstaller
    打包项目文件:pyinstaller -F <入口.py>
    -F (大写)打包成可执行文件
    -w (小写)不显示命令行窗口
    自己写的模块不用额外导入,pyinstaller会自动导入使用到的模块
    如果需要添加应用程序图标(需要ICON格式):
    -i
    例如:
    pyinstaller -Fwi logo.ico main.py打包成一个带icon图标不显示命令行窗口的应用程序

    2.Nuitka

    参考文章:Python打包启动慢问题解决方案
    参考文章:《Nuitka打包教程》为程序添加图标
    pyinstaller打包出来的可执行文件每次运行启动时间非常长,而Nuitka可以将Python源代码编译成C或C++代码并生成可执行文件。相对于使用Pyinstaller打包,使用Nuitka编译可以更加快速、更加稳定。
    安装Nuitka:pip install nuitka
    打包项目文件:nuitka --standalone <入口.py>
    带icon打包:nuitka --windows-icon-from-ico= --standalone <入口.py>

    II.在虚拟环境下打包项目

    [参考文章:解决pyinstaller打包文件过大]
    如果本机安装了很多模块,使用pyinstaller的时候就会把已安装的模块都打包进去,因此要在虚拟环境里面安装pyinstaller,使用虚拟环境里面的pyinstaller打包,就不会打包多余的Model。

    1.pycharm新建项目时添加虚拟环境

    在这里插入图片描述
    新建项目时可以快捷的添加虚拟环境,可以选择pipenv、Virtualenv和Conda

    2.项目添加/修改虚拟环境

    在File-Setting-Project:项目名里Project Interpreter可添加或者修改虚拟环境

    3.使用pipenv踩到的坑:pipenv模块安装问题

    如果你安装模块没有任何问题,可以无视这个部分
    如果存在写入lock文件失败,可以参考一下我的解决方式:
    安装以后写Lock文件失败,提示找不到模块,让我们确认是否能够连接源地址。
    如果各位也出现了这种问题,可以尝试切换源
    [参考文章:切换源]
    然后我切换了清华的、豆瓣的、阿里的,都装不上这个模块╮(╯▽╰)╭
    既然正常导入模块失败了,那我们只能试试骚操作了。
    首先使用pipreqs生成项目的requirements.txt
    pipreqs ./
    注意,如果是windows系统需要添加参数:
    pipreqs ./ --encoding=utf8
    [参考文章:pipreqs使用方法]
    然后使用pipenv安装依赖,如果还没有新建虚拟环境,那么把py项目和requirements.txt一同拷贝到准备安装虚拟环境的目录下,再执行pipenv install
    在这里插入图片描述
    pipenv会发现依赖文件并安装。

    如果已经安装好虚拟环境了,那么可以使用命令来安装依赖pipenv install -r requirements.txt

    希望可以帮到切换源也无法安装模块的小伙伴们


    标签:

    上一篇: angular12 引入args3d 下一篇:
    素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。