Python vitualenv环境下用pyinstaller打包exe程序,及报错解决:No module named ‘sklearn.metrics,xgboost.libpath

问题:之前直接用命令打包,默认的是系统的python环境,没有用到虚拟环境,打包出来会特别大一个多G。
1.cd E:\Users\13626\PycharmProjects\pythonProject3\venv\Scripts
(虚拟环境项目下)
2.activate 激活
在这里插入图片描述
3.cd E:\Users\13626\PycharmProjects\pythonProject3
打包:
在这里插入图片描述
4.
打包完成
在这里插入图片描述
5.dist文件夹中找到打好的包,运行exe,弹命令窗口后闪退。
于是到cmd命令行运行:
发现报错:ModuleNotFoundError: No module named ‘sklearn.metrics._pairwise_distances_reduction._datasets_pair’
在这里插入图片描述
解决方法:在.spec文件里面修改
hiddenimports=[‘sklearn.metrics._pairwise_distances_reduction._datasets_pair’,‘sklearn.metrics._pairwise_distances_reduction._middle_term_computer’]
分别对应两个no model name报错:sklearn.metrics._pairwise_distances_reduction._datasets_pair’,
‘sklearn.metrics._pairwise_distances_reduction._middle_term_computer’
6.pyinstaller XX.spec
运行还是闪退,到cmd运行:
在这里插入图片描述
报错:
xgboost.libpath.XGBoostLibraryNotFound: Cannot find XGBoost Library in the candidate path. List of candidates:

  • E:\Users\13626\PycharmProjects\pythonProject3\dist\fadsystem2\xgboost\lib\xgboost.dll
  • E:\Users\13626\PycharmProjects\pythonProject3\dist\fadsystem2\xgboost…\lib\xgboost.dll
  • E:\Users\13626\PycharmProjects\pythonProject3\dist\fadsystem2\lib\xgboost.dll
  • E:\Users\13626\PycharmProjects\pythonProject3\dist\fadsystem2\xgboost…/…/windows/x64/Release/xgboost.dll
  • E:\Users\13626\PycharmProjects\pythonProject3\dist\fadsystem2\xgboost./windows/x64/Release/xgboost.dll
    XGBoost Python package path: E:\Users\13626\PycharmProjects\pythonProject3\dist\fadsystem2\xgboost
    sys.prefix: E:\Users\13626\PycharmProjects\pythonProject3\dist\fadsystem2
    See: https://xgboost.readthedocs.io/en/latest/build.html for installing XGBoost.

到E:\Users\13626\PycharmProjects\pythonProject3\venv\Lib\site-packages文件夹里面找到XGboost文件夹放到你的exe文件目录下。
在这里插入图片描述

成功运行!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值