virtualenv + pyinstaller 将python程序打包成.exe文件(Windows系统)

您所在的位置:网站首页 pypiwin32安装 virtualenv + pyinstaller 将python程序打包成.exe文件(Windows系统)

virtualenv + pyinstaller 将python程序打包成.exe文件(Windows系统)

2023-04-11 11:07| 来源: 网络整理| 查看: 265

一、virtualenv

virtualenv用于创建一个虚拟的python环境,用于解决python环境中安装的包过多,存在冲突的问题

1、virtualenv安装 pip install virtualenv

可使用 virtualenv --version 查看安装情况

2、virturalenv基本使用

打开命令行窗口(win+R ->cmd),切换到想要创建虚拟环境的目录下(例如:cd xxx)

(1)创建虚拟环境:

virtualenv pyenv

pyenv即虚拟环境所在的文件夹,可自行定义其名称

(2)激活虚拟环境

cd pyenv/Scripts 切换到虚拟环境的Scripts目录 activate 执行activate命令激活当前虚拟环境

(3)退出当前虚拟环境

deactivate 二、pyinstaller 1、安装pyinstaller pip install pyinstaller 2、pyinstaller 基本使用

命令语法:pyinstaller -选项 python源文件/目录

打包后的exe文件存放在生成的dist文件夹中

三、virturalenv + pyinstaller最小化打包python程序 基本流程 virtualenv envname #创建新的虚拟环境 cd envname # 进入虚拟环境目录 cd Scripts # 进入虚拟环境的Scripts文件夹中 activate # 激活虚拟环境 pip install pyinstaller # 安装打包工具pyinstaller pip install pypiwin32 # 安装打包工具相关依赖 pip install python-packages # 安装python程序中需要引入的外部包 将需要打包的python文件或文件夹复制到Scripts目录中(该步骤也可以不用执行) pyinstaller -F py文件路径 切换到Scripts目录下,执行deactivate,取消激活虚拟环境 打包结束,exe文件存放在dist文件夹中 四、pyinstaller打包xgboost存在的一些问题

由于打包的程序中引用了xgboost模块,打包成功后运行exe文件时,界面一闪而过,通过命令行运行该程序,报错如下

xgboost.libpath.XGBoostLibraryNotFound: Cannot find XGBoost Library in the candidate path

对此在网上搜索了一些方法,如下介绍本人解决问题的一种方法:

(1)在GitHub上下载xgbbost源码

https://github.com/dmlc/xgboost

(2)将源码文件中python-package中的xgboost文件夹复制到你自己的python项目中

(3)下载xgboost.dll

通过官方网站下载时网页无法访问,故在此通过本人百度网盘分享该文件。

链接:https://pan.baidu.com/s/1zkvTFe-Jt5K2cv96etwLIQ提取码:w9tz

下载好了之后,将该文件复制到(2)中的xgboost文件夹中

(4)使用pyinstaller打包时,在命令结尾加上

--add-data=xgboost;xgboost

后期发现这个方法在使用的时候还是会出现问题,可以尝试用-D参数打包成文件夹,然后把xgboost源码文件复制到生成的exe文件所在的文件夹中

或者直接用下面的命令,不过xgboost源码文件夹要在当前命令目录下

pyinstaller -D main.py --add-data=xgboost;xgboost


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3