在pipenv虚拟环境下使用pipinstaller打包项目

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

pyinstaller

[参考文章:pyinstaller打包项目]
安装pyinstaller : pip install pyinstaller
打包项目文件:pyinstaller -F <入口.py>
-F (大写)打包成可执行文件
-w (小写)不显示命令行窗口
自己写的模块不用额外导入,pyinstaller会自动导入使用到的模块

解决pyinstaller打包项目文件过大

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

pipenv虚拟环境

pipenv 安装很简单,pip install pipenv
然后新建一个文件夹,把py项目拷进去,命令行cd到当前目录下运行pipenv install,就可以构建好虚拟环境了。
接下来就是安装项目所需要的模块
pipenv install

模块安装问题

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

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

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

你可能感兴趣的:(在pipenv虚拟环境下使用pipinstaller打包项目)