1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python 打包适用于win 7/xp系统的应用程序(exe)

Python 打包适用于win 7/xp系统的应用程序(exe)

时间:2018-09-25 02:40:30

相关推荐

Python 打包适用于win 7/xp系统的应用程序(exe)

**

在win10/11系统上打包适用于win 7/xp系统的Python应用程序(exe)(全过程)

**

一.安装合适的Anaconda包与合适版本的Python

1.安装合适的Anaconda包

打包程序之前需要安装较新版本的Anaconda包,低版本可能会存在各种bug。我遇到过的问题就有:

1.1 Bug1

进入命令提示符窗口(win+r,输入cmd,回车),运行下面一段代码:

set CONDA_FORCE_32BIT=1 //切换到32位conda create --name python36 python=3.6 //创建一个python3.6的环境,命名为python36conda info --envs //查看是否添加成功activate python36 //切换到python3.6环境python --version //确认python环境

运行 “ conda create --name python36 python=3.6 //创建一个python3.6的环境,命名为python36”此句时,创建失败。

1.2 Bug2

使用“conda update conda”,升级失败。

1.3 解决方法

进入命令提示符窗口(win+r,输入cmd,回车),输入“conda -V”检查自己的conda版本。(之前使用的4.6.11就有上述一系列问题)如果安装的conda版本过低,请完整卸载Anaconda,安装较新版本的Anaconda。(我最终使用的是.11月份的版本,文件名:Anaconda3-.11-Windows-x86_64.exe)

2.安装支持win7/xp系统的python版本的虚拟环境

xp对python的版本支持最高只到python3.4.4,所以应在conda中安装python3.4.4及其以下版本的python程序。(但是程序中用到的其他包的适用于xp的低版本包不太好找,所以建议使用python3.4.4版本)

安装虚拟环境代码如下:

set CONDA_FORCE_32BIT=1 //切换到32位conda create --name python344 python=3.4.4 //创建一个python3.4.4的环境,命名为python344conda info --envs //查看是否添加成功activate python344 //切换到python3.4.4环境python --version //确认python环境

此处我将新建的python3.4.4的环境命名为python344,之后使用到的python344均为环境名,使用时请注意更换为你自己定义的环境名。

二.安装使用到的库

在程序中使用到的库,需选择支持win7/xp系统的库版本。

使用pip直接在线安装库时(pip install 库名称==版本),容易找不到库的资源而报错,报错时库可以从网络/GitHud上去找,下面给出我用到的几个库的安装方法。

2.1 安装pyinstaller,用来打包exe程序

安装方法见大佬的文章,文章链接如下:

/u012336596/article/details/112864589

2.2 安装PyQt5

安装方法见大佬的文章,文章链接如下:

/weixin_39535557/article/details/111780198

2.3 其他用到的库

一般的库直接网上搜索相应的库名,寻找可以适用于xp系统的版本进行下载安装。安装方法:下载相应库版本的whl文件。

先进入安装的环境,再使用安装命令进行安装。进入命令提示符窗口,输入以下命令:

activate python344pip install whl文件路径

常用的库的whl文件下载地址。(里面没有的库,可以去GitHub上找找看)

https://www.lfd.uci.edu/~gohlke/pythonlibs/

三.对py文件进行打包

使用pyinstaller打包文件,命令如下:

pyinstaller.exe -F 文件名.py -w

2.之后再使用此安装环境打包适用于xp系统exe程序的流程

进入命令窗口,运行下面代码:

activate python344pyinstaller.exe -F 文件名.py -w

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。