python打包exe,各种bug处理,以及解决方案

liftword3个月前 (03-14)技术文章13

我们在用python打包的时候 常用的是用pipenv来打包,当然还有其他的一些打包软件,我这里以pipenv来介绍:

pipenv 是创造一个虚拟的干净环境,去掉不必要的包,使得小程序的体积控制在1-10M左右,当然如果程序很复杂,也可能会超过不少具体看自己程序依赖包的大小。

下面我们就开始介绍一下用anconda集成环境为基础,来用pipenv来打包

1.如果我们安装了各种版本的anconda在配置环境变量以使用pipenv要删除本地的虚拟环境,避免上一个版本使用遗留影响到现在版本的打包:


在C:\Users\Administrator\.virtualenvs中删除.virtualenvs文件,这是一个虚拟的本地环境也是一个临时环境,可以随时删除没有任何影响


桌面上新建文件,把文件进行打包,这里我习惯用Powershell窗口打包

进入之前设置anconda国内镜像:

我这里选择阿里巴巴的镜像地址:随便一个cmd窗口执行:

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

或者在进入前后都执行一遍,再检查配置文件是否是有镜像库的地址,是否执行成功

进入pipenv 环境 pipenv shell

清空环境 pipenv --rm

清空文件锁环境

添加依赖包环境,我这里代码看着很多 其实只有一个openpyxl 知识多加了一个 pyinstaller 用于打包

配置文件:

[[source]]

url = "https://mirrors.aliyun.com/pypi/simple/"

verify_ssl = true

name = "pypi"

[packages]

openpyxl = "*"

pyinstaller = "*"

[dev-packages]

[requires]

python_version = "3.12"

这里 切换配置文件为国内镜像地址后,再进行安装其他的包


这样打包的时候下载数据会比较快

安装依赖包

pipenv install pyinstaller 这里是打包必备,否则哪怕你在虚拟机中打包,如果没有安装pyinstaller 它会用外包的pyinstaller 会把你的包变得几百M那么大。这是必须的,不行你可以试试。

pipenv install openpyxl 这是代码需要依赖的包

打包成功后:大约12M



双击测试,应用程序就可以执行了


永久配置anaconda的镜像地址

cmd中输入命令:

conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/free/
2conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/main/
3conda config --set show_channel_urls yes

查看配置

conda config --show

出现以下说明配置成功


相关文章

PyOxidizer:将 Python 应用打包成单一可执行文件的神器

三、PyOxidizer 基本使用使用 PyOxidizer 打包应用的基本流程如下:1. 创建新项目首先,我们使用 pyoxidizer init 命令创建一个新的 PyOxidizer 项目:py...

python打包exe指南来了,pyinstaller打包教程

代码编写完成,如何在没有python环境的电脑上运行?编写了一个GUI程序,如何把文件打包好,发给别人直接使用?其实最简单的办法就是把.py源文件,打包成可执行程序员exe文件,别人直接双击exe文件...

30s带你使用Python打包exe文件,并修改其图标

在 Python 中,我们可以使用PyInstaller或cx_Freeze等工具将 Python 脚本打包成可执行文件(.exe),并且能够修改生成的.exe文件的图标。使用 PyInstaller...

Python 项目代码写完了,然后怎么打包和发布?

你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?喂,开源么?接下来小帅b就跟你说说,如何打包你的代码。就拿我们上次演示的 用 Python 开发一个 「个人计划 todolist」...

Python打包可执行文件汇总

前言 Python里面 有很多好用的功能,这些功能有时候在其他语言中暂时没有好的替代品。考虑到其他语言跟Python集成效果并不太完善,这时候可以把对应的Python功能打包成exe可执行文件,提供给...

抛弃容器,Python应用一键打包!Dockerc带你颠覆开发新思路

前言在容器化技术日益普及的今天,Dockerc 的出现为开发者带来了一种全新的选择:将 Docker 容器镜像编译为独立的二进制文件。这种方式让应用的分发更加高效和便捷,省去了对 Docker 环境的...