python 虚拟环境打包exe方法及路过的坑
目录
- 1、虚拟环境打包
- 1.1打包流程
- 1.2参考资料
- 2、打成功但是运行出错
- 2.1问题分析:
- 2.2、修改spec文件后重新打包
- 2.3、设置虚拟环境的环境变量后重新打包
- 2.4、降低问题包的版本后重新打包
这是个python 打包的问题,关于python打包心得更多了,小白打包往往把一个很简单的程序打包成几百兆,但是现在我觉得完全没用必要。打包也可以很简单,方法如下:
1、虚拟环境打包
1.1打包流程
1、分析代码,用到了哪些依赖包;
2、新建一个虚拟环境,然后把需要的包安装上;
3、激活虚拟环境,在虚拟环境上测试,测试没用问题就进行正式打包
说明:新建虚拟环境是打包后exe小的关键所在,因为要不然使用默认环境会把你所有包都编译一遍,不仅耗时长、打包出来的exe文件特别大、打包过程中各种问题层出不穷,可能那些包你都没用用到,但是报错了,你不得不花很多时间来解决这些问题。
1.2参考资料
什么,不会虚拟环境,不会打包?这里可以参考我之前写的文章:
1)从零开始,python打包工具pyinstaller的使用及踩过的坑
2)python三种虚拟环境安装方法和tensorflow1.12安装
2、打成功但是运行出错
按照参考资料基本上就很容易打包成功了
pyinstaller -Fc F:\GF\SARshibie\software\run_ship_rotate.py#打包成一个文件,控制台无界面的程序
打包成功:
但是运行出错,错误信息如下:
[34900] WARNING: file already exists but should not: C:\Users\ADMINI~1\AppData\Local\Temp\_MEI349002\torch\_C.cp37-win_amd64.pyd
Traceback (most recent call last):File "run_ship_rotate.py", line 10, in <module>File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_moduleFile "mmdet\apis\__init__.py", line 1, in <module>File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_moduleFile "mmdet\apis\inference.py", line 4, in <module>File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_moduleFile "mmcv\__init__.py", line 4, in <module>File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_moduleFile "mmcv\fileio\__init__.py", line 4, in <module>File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_moduleFile "mmcv\fileio\io.py", line 4, in <module>File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_moduleFile "mmcv\utils\__init__.py", line 3, in <module>File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_moduleFile "mmcv\utils\env.py", line 2, in <module>File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_moduleFile "torch\__init__.py", line 81, in <module>
ImportError: DLL load failed: 找不到指定的模块。
[36664] Failed to execute script 'run_ship_rotate' due to unhandled exception!
2.1问题分析:
问题描述:有一个WARNING,和一堆错误
2.2、修改spec文件后重新打包
按照网上的方法,查看你编译的代码哪一行有问题,就在编译的spec文件中增加哪个包,于是修改spec文件,增加了一大堆
继续打包
pyinstaller -Fc F:\GF\SARshibie\software\run_ship_rotate.spec
2.3、设置虚拟环境的环境变量后重新打包
编译出来运行WARNING,但是错误问题依旧,然后仔细分析问题,发现最终的错误是在这两个文件上,最终根据这个路径,找到文件中的出错代码点
定位问题代码:
根据最后一个,“from torch._c import * ”这个代码百度搜索错误原因,找到解决方案:
参考:https://blog.csdn.net/ewqapple/article/details/86155286
把虚拟环境的环境遍历设置了个遍
在系统“PATH”里面增加了如下的环境变量,解决了torch
继续打包
pyinstaller -Fc F:\GF\SARshibie\software\run_ship_rotate.spec
注意:
最后移植的时候发现把exe拷贝过去没啥用,还是报这个错误,主要是要把下面这个路径拷贝到新电脑,然后设置为环境变量就OK了
C:\Anaconda3\envs\simp37\Library\bin
2.4、降低问题包的版本后重新打包
编译完成后还是出错,问题:
OSError: Can't get source for C:\Users\ADMINI~1\AppData\Local\Temp\_MEI348442\torchvision\ops\misc.pyc. TorchScript requires source access in order to carry out compilation. Make sure original .py files are available. Original error: could not get source code
[27976] Failed to execute script 'run_ship_rotate' due to unhandled exception!
仔细研究后如下红色框位置,判断肯定是torchvision问题
于是查看版本:torch版本1.3.1 torchvision版本0.4.2,网上查了对应版本号没啥问题
解决方案:
降低torchvision版本,参考网上:https://blog.csdn.net/jacke121/article/details/104986360
卸载现有版本,按照低版本
pip uninstall torchvision
pip install torchvision==0.2.2.post3
更改后的安装包:
继续打包
pyinstaller -Fc F:\GF\SARshibie\software\run_ship_rotate.spec
编译后的执行程序可以正常执行了。
这个问题困了我一天,终于干掉了,特此记录。
python 虚拟环境打包exe方法及路过的坑相关推荐
- 基于Pyinstaller库将Python项目包括 图片打包exe方法,本人已经实践多次
基于Pyinstaller库将Python项目包括 图片打包exe方法,本人已经实践多次 文章目录 基于Pyinstaller库将Python项目包括 图片打包exe方法,本人已经实践多次 一.前言 ...
- python 打包exe_将python文件打包exe独立运行程序方法详解
首先需要安装pyinstaller库. pip install pyinstaller exe程序打包步骤 cmd 进入要编译的python文件所在的文件夹, 然后 pyinstaller -F he ...
- python pyinstaller 打包exe文件,(附带图片 + 自己、别人电脑上均可以运行)
python pyinstaller 打包exe文件,(附带图片 + 自己.别人电脑上均可以运行) 科目:windows + python pyinstaller 打包exe 内容:打包程序.图片.视 ...
- (1)python pyinstaller打包exe添加版本信息(2)python获取exe版本信息(3)pyqt5开发exe添加检查版本更新功能
笔者总结不容易点个关注吧 一键三联哦! 感谢您! python pyinstaller打包exe添加版本信息 打包并添加版本信息 注意!这里有个坑 如果第二次要修改版权信息 要将fi ...
- python gui打包exe pyinstaller打包运行失败 Failed to execute script pyi_rth_multiprocessing
python 通过pyinstaller打包后,在别的电脑运行失败 Failed to execute script pyi_rth_multiprocessing 在低版本windows7上运行会出 ...
- Python如何打包exe文件?如何换成喜欢的图标?
前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 今天又想来分享一个Python打包exe文件的教程!!这次是最强终极版~~~~ 在我们代码写好后,分享给不会编程的朋友时,总会遇到许许多多的的问题 这个时 ...
- Python如何打包EXE可执行文件
一.安装Pyinstaller 使用Python打包EXE可执行文件时,需要使用Pyinstaller,使用命令pip install PyInstaller进行安装,如下图: 安装成功后的效果如下图 ...
- 用来用去,Python脚本打包 exe还是这款工具最棒
1. 什么是auto-py-to-exe auto-py-to-exe 是一个用于将Python程序打包成可执行文件的图形化工具.本文就是主要介绍如何使用 auto-py-to-exe 完成 pyth ...
- 【干货】Python文件打包 .exe文件反编译
一.Python文件 打包 成 .exe 可执行文件 第一步:安装pyinstaller 首先安装pyinstall,使用命令:pip3 install pyinstaller,当然有可能报错,如下图 ...
- Python项目打包发布方法
目前python打包工具有多个,目前比较好用的为pyinstaller,该工具可以支持在window和linux下使用. 在windows下,大小为几十K的源文件打包成exe文件,可能为几十兆,原因是 ...
最新文章
- 判断分辨网站是否伪静态的方法
- System.currentTimeMills()显示系统当前时间
- 牛客网 桂林电子科技大学第三届ACM程序设计竞赛 D.寻找-树上LCA(树上a到b的路径上离c最近的点)...
- java synchronized wait
- linux能挂载的文件类型,mount命令是如何自动识别挂载点的文件系统类型的
- Python之np.where的使用
- elementui :on-remove怎么用_绍兴【办公室绿化】怎么操作
- 大端、小端的前世今生
- CSDN的这些人,醒醒吧
- 运维自动导出业务容器Java堆栈错误日志脚本
- Windows防火墙命令行手册
- 计算机毕业设计ssm小区宠物管理系统k8n96系统+程序+源码+lw+远程部署
- ant design vue 实现手机号 身份证 中文校验 邮箱校验
- Kubernetes集群容器运行日志收集
- imageio不存在java,Java自带的ImageIO留下的坑
- 清扫重复文件夹的数据刷
- 红帽为什么要加入阿里云的朋友圈?
- centos7装机与基础配置
- Python爬虫爬取相关图片
- swf用html怎么写,swfobject.js html中写入一个swf文件
热门文章
- php thrift 编译,Thrift 源码编译
- thrift文件服务器,Thrift功能和使用
- dumprep.exe 进程吃掉一半CPU
- 幻幕广告上线,沉浸式体验塑造大片即视感
- windows装机硬盘超过2T问题
- linux系统it固定资产管理系统包_固定资产管理系统功能介绍
- 清华现超级“学霸” 15门课程100分4门99分(图)
- 【超详细】Windows平台安装 apache 2.4
- 合并excel方法汇总
- 计算机电子科技生产质量标准,SJT9527__微型数字电子计算机 质量分等标准(4页)-原创力文档...