目录

  • 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方法及路过的坑相关推荐

  1. 基于Pyinstaller库将Python项目包括 图片打包exe方法,本人已经实践多次

    基于Pyinstaller库将Python项目包括 图片打包exe方法,本人已经实践多次 文章目录 基于Pyinstaller库将Python项目包括 图片打包exe方法,本人已经实践多次 一.前言 ...

  2. python 打包exe_将python文件打包exe独立运行程序方法详解

    首先需要安装pyinstaller库. pip install pyinstaller exe程序打包步骤 cmd 进入要编译的python文件所在的文件夹, 然后 pyinstaller -F he ...

  3. python pyinstaller 打包exe文件,(附带图片 + 自己、别人电脑上均可以运行)

    python pyinstaller 打包exe文件,(附带图片 + 自己.别人电脑上均可以运行) 科目:windows + python pyinstaller 打包exe 内容:打包程序.图片.视 ...

  4. (1)python pyinstaller打包exe添加版本信息(2)python获取exe版本信息(3)pyqt5开发exe添加检查版本更新功能

    笔者总结不容易点个关注吧    一键三联哦!       感谢您! python pyinstaller打包exe添加版本信息 打包并添加版本信息 注意!这里有个坑 如果第二次要修改版权信息 要将fi ...

  5. python gui打包exe pyinstaller打包运行失败 Failed to execute script pyi_rth_multiprocessing

    python 通过pyinstaller打包后,在别的电脑运行失败 Failed to execute script pyi_rth_multiprocessing 在低版本windows7上运行会出 ...

  6. Python如何打包exe文件?如何换成喜欢的图标?

    前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 今天又想来分享一个Python打包exe文件的教程!!这次是最强终极版~~~~ 在我们代码写好后,分享给不会编程的朋友时,总会遇到许许多多的的问题 这个时 ...

  7. Python如何打包EXE可执行文件

    一.安装Pyinstaller 使用Python打包EXE可执行文件时,需要使用Pyinstaller,使用命令pip install PyInstaller进行安装,如下图: 安装成功后的效果如下图 ...

  8. 用来用去,Python脚本打包 exe还是这款工具最棒

    1. 什么是auto-py-to-exe auto-py-to-exe 是一个用于将Python程序打包成可执行文件的图形化工具.本文就是主要介绍如何使用 auto-py-to-exe 完成 pyth ...

  9. 【干货】Python文件打包 .exe文件反编译

    一.Python文件 打包 成 .exe 可执行文件 第一步:安装pyinstaller 首先安装pyinstall,使用命令:pip3 install pyinstaller,当然有可能报错,如下图 ...

  10. Python项目打包发布方法

    目前python打包工具有多个,目前比较好用的为pyinstaller,该工具可以支持在window和linux下使用. 在windows下,大小为几十K的源文件打包成exe文件,可能为几十兆,原因是 ...

最新文章

  1. 判断分辨网站是否伪静态的方法
  2. System.currentTimeMills()显示系统当前时间
  3. 牛客网 桂林电子科技大学第三届ACM程序设计竞赛 D.寻找-树上LCA(树上a到b的路径上离c最近的点)...
  4. java synchronized wait
  5. linux能挂载的文件类型,mount命令是如何自动识别挂载点的文件系统类型的
  6. Python之np.where的使用
  7. elementui :on-remove怎么用_绍兴【办公室绿化】怎么操作
  8. 大端、小端的前世今生
  9. CSDN的这些人,醒醒吧
  10. 运维自动导出业务容器Java堆栈错误日志脚本
  11. Windows防火墙命令行手册
  12. 计算机毕业设计ssm小区宠物管理系统k8n96系统+程序+源码+lw+远程部署
  13. ant design vue 实现手机号 身份证 中文校验 邮箱校验
  14. Kubernetes集群容器运行日志收集
  15. imageio不存在java,Java自带的ImageIO留下的坑
  16. 清扫重复文件夹的数据刷
  17. 红帽为什么要加入阿里云的朋友圈?
  18. centos7装机与基础配置
  19. Python爬虫爬取相关图片
  20. swf用html怎么写,swfobject.js html中写入一个swf文件

热门文章

  1. php thrift 编译,Thrift 源码编译
  2. thrift文件服务器,Thrift功能和使用
  3. dumprep.exe 进程吃掉一半CPU
  4. 幻幕广告上线,沉浸式体验塑造大片即视感
  5. windows装机硬盘超过2T问题
  6. linux系统it固定资产管理系统包_固定资产管理系统功能介绍
  7. 清华现超级“学霸” 15门课程100分4门99分(图)
  8. 【超详细】Windows平台安装 apache 2.4
  9. 合并excel方法汇总
  10. 计算机电子科技生产质量标准,SJT9527__微型数字电子计算机 质量分等标准(4页)-原创力文档...