利用Pyinstaller+Anaconda将py文件打包成exe文件

一、背景

现在有一个hello.py文件,当你需要将这个文件运行到其他人电脑上,而且其他人电脑上没有相关环境的时候,就需要将py文件转为exe文件,点击exe文件直接运行。这里,主要介绍利用Pyinstaller库将py打包成exe。
在这里插入图片描述

二、 Anaconda环境创建与三方库的安装

为什么要使用Anaconda来创建新环境?因为打包之后的exe文件会很大,主要原因是它将各种三方库都打包进去了,如果不创建新环境,它就会打包系统环境内的全部三方库,导致文件更大,而且打包时间也很长,因此建议创建新环境将要使用的三方库打包进去即可,下面介绍如何使用新环境来打包py文件。

2.1 创建新环境

创建环境
conda create -n 环境名 python=版本
这里创建了一个名为hello的环境,python是3.8版本的
conda create -n hello python=3.8
激活刚创建的环境
activate hello

在这里插入图片描述

查看当前环境下已安装的库
conda list

在这里插入图片描述

2.2 三方库的安装

根据自己的py文件所需要的三方库进行安装。我这主要有两个库需要安装,分别是pymysql和akshare。
在这里插入图片描述
一般情况下,直接在新环境下pip install 库名即可,如果提醒你还需要装其他依赖库,按照步骤依次安装,如:

pip install pymysql

而akshare采用的是下面安装方式:

pip install akshare -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

安装完之后,可以检查一下当前安装的库是否可以运行hello.py不报错,如果没问题了就可以进行打包了。先进入hello.py的文件目录,然后python hello.py。
在这里插入图片描述

三、Pyinstaller打包

运行完发现没问题,开始打包。打包之前,先要安装Pinstaller库,建议安装4.10版本。

pip install pyinstaller==4.10

安装完之后正式开始打包,打包命令非常简单:具体pyinstaller参数设置请查阅其他网上资料。

pyinstaller -F hello.py
pyinstaller -D hello.py  # 建议使用

这里使用pyinstaller -D hello.py半打包的方式打包,它的好处就是使用-F全打包时,执行exe经常会出现闪退,这时候可能产生的原因,比较常见的就是少模块,也就是打包的时候它并没有给我们打包进行,那又要添加库/模块重新打包。这时如果是使用-D半打包,就可以将相关的库加入包中,而不需要重新打包,具体操作方式接下来会说。
先来打包,切换到hello.py文件目录下,执行pyinstaller -D hello.py,稍等一会,结束之后在文件下会产生三个文件,生成的exe在dist包下,如果是全打包的方式,这里只有一个exe,没有其他文件。
在这里插入图片描述
在这里插入图片描述
点击hello.exe,如果正常打包,它就会执行相应的代码操作。但是我这会出现闪退,具体问题看不清,这时我们可以在exe所在的文件下cmd该exe,会出现相应的错误。
在这里插入图片描述
根据错误,执行相应的操作,这里我们发现主要问题是mini_racer.dll。发现dist下面根本没有这个文件,所以我们要添加这个文件。
在我的电脑系统里的发现了这个文件。具体操作,先找到anaconda的安装路径包,找到该环境下的Lib文件夹,打开里面有个site-packages文件夹,这里存放的就是安装的各种环境,在里面我们找到mini_racer.dll把该文件夹复制到dist文件夹下,也就是放exe的文件夹。
在这里插入图片描述
再次运行,发现还有错误,这次是akshare的错误,可以去hello环境下用刚同样的方法把少的东西复制过来。
在这里插入图片描述
再次运行,成功运行。

四、总结

  1. 尽量使用干净的环境
  2. 使用pyinstaller4.10版本
  3. 使用半打包的方式pyinstaller -D hello.py,缺啥补啥。
  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Anaconda 中也有可以用来打包 Python 程序的工具,叫做 `conda-pack`,它可以将整个环境打包一个 tar 包,包含了程序所需要的所有依赖库和环境。 以下是简单的打包步骤: 1. 安装 `conda-pack`: ``` conda install conda-pack ``` 2. 激活你的环境: ``` conda activate your_env ``` 其中,`your_env` 是你要打包的环境的名称。 3. 使用 `conda-pack` 打包: ``` conda pack -n your_env ``` 其中,`-n` 参数指定要打包的环境的名称。 4. 打包后,会生一个名为 `your_env.tar.gz` 的 tar 包,其中包含了程序所需要的所有依赖库和环境。 注意:如果你的程序中使用了第三方库,需要在打包前先安装这些库。可以使用 `conda install` 或者 `pip install` 命令安装。 ### 回答2: Anaconda是一个流行的Python数据科学平台,它为Python程序的开发和部署提供了便利。Anaconda中包含了许多常用的科学计算和数据处理库,如NumPy、Pandas和Matplotlib等。当我们将Python程序打包可执行文件时,可以使用Anaconda提供的工具和环境来简化这个过程。 Anaconda中的一个常用工具是conda包管理器,它可以用来管理Python环境和安装所需的依赖包。通过conda,我们可以创建一个独立的Python环境,其中包含了程序所需的所有依赖包和库。这使得程序的打包和移植变得更加容易,因为我们可以将整个环境打包并在其他机器上部署,而不用担心依赖包的版本和配置问题。 除了conda,Anaconda还提供了其他一些用于打包的工具。比如,我们可以使用conda-build工具来创建一个conda包,该包包含了程序的所有依赖项和配置信息。这使得程序的分发和安装变得更加方便,其他用户可以通过简单的命令来安装和运行程序,而不用手动处理依赖关系。 另外,Anaconda还提供了一个名为pyinstaller的工具,它可以将Python程序打包一个独立的可执行文件。在使用pyinstaller时,我们可以指定程序的入口文件和依赖信息,然后该工具将会自动将程序和其所需的所有依赖项打包一个可执行文件。这样,我们就可以在没有Python环境的机器上直接运行打包好的程序,而无需安装任何依赖包。 综上所述,Anaconda提供了一系列工具和环境,可用于将Python程序进行打包和部署。这些工具使程序的打包和运行更加便捷,同时确保了程序在不同机器上的可移植性。通过Anaconda,我们可以更高效地管理和发布我们的Python程序。 ### 回答3: Anaconda是一个开源的Python发行版,内置了很多科学计算库和工具,方便用户进行数据分析和科学研究。针对Python程序的打包和发布,Anaconda提供了一种简单而强大的方式。 在Anaconda环境中,用户可以使用conda命令创建和管理虚拟环境。虚拟环境可以帮助用户隔离不同项目使用的不同Python版本和第三方库的依赖关系,使得程序运行更加稳定和可靠。用户可以使用conda命令创建一个新的虚拟环境,并指定要使用的Python版本和需要安装的第三方库。 一旦创建了虚拟环境,用户可以使用pip命令安装和管理Python包。在Anaconda中,pip命令已经预先安装好,因此用户可以直接使用它来安装需要的第三方库。用户只需执行"pip install 包名"命令,conda就会自动下载并安装指定的包。 另外,Anaconda还提供了conda打包工具,可以将整个Python环境以及所有依赖的库打包一个独立的可执行文件,方便用户在其他机器上部署和运行程序。用户只需执行"conda pack"命令,Anaconda就会自动将当前虚拟环境中的所有文件和依赖打包一个tar.gz文件。用户可以将这个打包文件传输到其他机器上,在目标机器上执行"conda install"命令,就可以轻松地将虚拟环境和程序部署到目标机器上。 综上所述,Anaconda为用户提供了一种简单而强大的方式,可以帮助用户对Python程序进行打包和发布。有了Anaconda的支持,用户可以更加方便地管理Python环境和第三方库的依赖关系,并可以轻松地将程序部署到其他机器上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值