关于python打包py文件成exe文件

这里就只介绍常用的pyinstaller打包方法以及一些常遇到的问题

目录

一.打包步骤

第一步:安装打包所依赖的包(pyinstaller)

第二步:安装程序所需要的包(这一步只针对使用pycharm编写程序,cmd打包程序,若是使用python自带的idea可忽略这一步)

第三步:输入打包程序命令

二.常见问题

1.打包时出现path找不到的问题

1.1.解决方法

2.在win10 64位的环境下打包的exe在win7和win10的32位上无法运行的问题

2.1.解决方法

3.闪退问题

3.1.解决方法


一.打包步骤

第一步:安装打包所依赖的包(pyinstaller)

在cmd命令行中输入以下命令,然后回车进行安装

pip install pyinstaller

然后等待安装成功

第二步:安装程序所需要的包(这一步只针对使用pycharm编写程序,cmd打包程序,若是使用python自带的idea可忽略这一步)

例如:程序使用了requests包,这时在cmd中就需要输入以下命令进行安装requests包

pip install requests

第三步:输入打包程序命令

pyinstaller -选项 文件名.py

关于这里的选项有以下说明

-F:表示生成单一的exe文件

-w:表示执行exe文件时去除背后的dos窗口 ps:建议最初试验时保留dos,可以查看是否有错误发生

-p:有些需要手动添加包的位置(dir1,dir2)多个地址时以分号分开

-i:加入图标

例如:打包一个aaa.py的程序。需要不带dos窗口,单一的(即将dll等可扩展文件都放入exe文件中),同时aaa.py文件中调用了bbb.py文件中的类,使用ccc.ico的软件图标

此时,命令为

pyinstaller -p bbb.py -i ccc.ico -w -F aaa.py

然后回车,等待生成exe文件即可

生成的exe文件在aaa.py文件同目录下的dist文件夹中

关于python打包py文件成exe文件_第1张图片

 关于python打包py文件成exe文件_第2张图片

 当然,也可将这个打包功能加入到pycharm中,方法在下面的常见问题中

二.常见问题

1.打包时出现path找不到的问题

1.1.解决方法

有时候因为版本问题出现了某种安装的库找不到路径。这时打包的命令可以再最后面加个

-path=‘路径’  进行解决。

这个问题是我之前写程序时遇到的,现在找不到那个文件了,暂时提供不了图片了。遇到类似的问题可以这样试着解决下

2.在win10 64位的环境下打包的exe在win7和win10的32位上无法运行的问题

如果你的打包环境是win10 64位的环境,按照上面说的步骤进行打包程序,那在win7 32或者64位的电脑上运行exe文件,会出现下图的问题

关于python打包py文件成exe文件_第3张图片

​ 问题原因未知,但是我确定报错问题不是说这台win7 32位的设备缺少api-ms-win-core-path-l1-1-0.dll这个动态库,而是出在python上我记得的是python3.9已经不支持在win7使用

2.1.解决方法

2.1.1、下载提示的动态库。

(这里说下我自己的经历)但是按照提示信息,下载了api-ms-win-core-path-l1-1-0.dll这个库,然后按照其他博主的方法放到了system32文件夹下。虽然他这个方法解决了弹窗报错,但是我发现我的exe执行会发生闪退问题!exe闪退的可能因素非常多。(个人不建议使用这个方法)

2.1.2、用对应系统的虚拟机。

例如要在win7和win10的32 64位都能使用

步骤如下:

   1.先安装一个虚拟机VM。然后再去下载win7的镜像文件。这一步骤在网上有很多的参考方法。
   2.下载安装python3.7 32位,这里需要和根据你要运行exe的环境看齐,比如你和我一样要在win7 32位下运行python的exe。那么就安装32位的。
   3.在win7中安装python程序所需要的各个库,顺便安装个pyinstaller库用于打包程序

2.1.3、使用32位的anaconda

这个方法可以在win10 64位的电脑上使用,具体如下

步骤:

       1、安装Anaconda32位 https://www.anaconda.com/download/ 。这里不再有过多的叙述,相关安装教程在其他博主中有更详细的讲解

关于python打包py文件成exe文件_第4张图片

        2、在Anaconda新创建一个python环境,这里我安装的是python3.7。

打开anaconda的cmd,如下图

关于python打包py文件成exe文件_第5张图片

 再输入以下命令

conda  create -n python37  python=3.7

 ​ 这句话的意思是创建一个python3.7的新环境,并且名命为python37。你也可以根据你的需要做更改。-n后面更新环境的名字,python=后面跟python的版本。

        3、切换环境

刚开始的时候,为base环境(默认环境)

关于python打包py文件成exe文件_第6张图片

这时输入以下命令

activate python37

 关于python打包py文件成exe文件_第7张图片

        4、进行打包

剩下的步骤跟上面的打包步骤一样。安装对应的库,然后打包。

如果嫌麻烦也可将这个环境链接到pycharm中

关于python打包py文件成exe文件_第8张图片

 关于python打包py文件成exe文件_第9张图片

这里我的pycharm是2021版本的,其他版本的类似

  1. 选择Conda环境
  2. 选择现有的编译器
  3. 找到Anaconda安装路径下的一个文件叫envs在里面找到你新建的环境,然后再进去找到python.exe文件。那个Conda可执行文件是默认的不用管。

 关于python打包py文件成exe文件_第10张图片

选择好解析器后,我们就可以开始安装模块了。然后再pycharm的终端中打包后的exe文件就可以放到win7中运行了。 

3.闪退问题

如果直接双击exe程序,发现程序运行完了直接就退出,如果报错的话,连报错信息都来不及看就退了

3.1.解决方法

打开cmd命令行,将exe文件拖拽到命令行中,然后按回车执行,就不会退出了

你可能感兴趣的:(python,python,pycharm,开发语言)