• pycharm
  • Anaconda
  • 没有单独安装python,使用的是Anaconda的python
  • 命令在pycharm的Terminal中执行(这种环境下cmd中执行会出错,或许要单独安装python才能运行,我前后使用了两次,第一次好像就是安装的python(时间太久有点忘了),所有操作都在cmd,包括安装pyinstaller,cmd中可以运行,第二次是使用的anaconda,所有操作都在pycharm,包括安装pyinstaller,cmd中运行报错)
  • 打包后输出的位置在执行命令时所在的目录下

打包步骤

  1. pip install pyinstaller
  2. 修改代码中的关于路径的地方。当exe在运行时,会生成一个临时文件夹,__file__可获取当前py脚本在临时文件夹中的路径,根据项目目录结构修改关于资源路径的代码。比如项目pyproj资源文件C:\pyproj\abc.txt,脚本文件C:\pyproj\pys.py,脚本中路径C:\pyproj\abc.txt改为os.path.dirname(file)+‘abc.txt’。(file前后都有两个下划线,这里无法显示)
  3. 打包。pyinstaller -F C:\pyproj\pys.py,生成pys.spec,build和dist文件夹(这两个文件夹可删,dist中其实已经生成了exe,但是运行会报错,因为资源找不到,如果没有用到资源的话是可以运行的)。
  4. 打开pys.spec。用记事本等打开pys.spec,内容大概这样:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['Main.py'],pathex=['项目路径'],binaries=[],datas=[],hiddenimports=[],hookspath=[],runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,cipher=block_cipher)
exe = EXE(pyz,a.scripts,a.binaries,a.zipfiles,a.datas,[],name='Main',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,upx_exclude=[],runtime_tmpdir=None,console=True )
  1. 修改pys.spec。注意第6行datas=[],改为datas=[(‘abc.txt’,‘abc.txt’)],意思是将项目路径下的abc.txt文件加入目标exe中,在运行时放在临时文件的根目录下,名称为abc.txt,文件夹同理。如果有多个资源用逗号隔开,datas=[(‘res/bg.jpg’, ‘res’), (‘exam.db’, ‘.’)],列表里面是元组,左边是你要添加的filename(相对路径即可),右边是拷贝到项目中之后的文件夹名字。比如:(‘res/bg.jpg’, ‘res’) 中的 ‘res/bg.jpg’ 表示工程根目录下res文件夹下有bg.jpg图片,拷贝到项目之后作为res文件夹。
    (‘abc.txt’, ‘.’) 中的’exam.db’是工程根目录下的文件,’.'表示根目录(注意有点号),即拷贝到项目中的根目录下。
  2. 复制资源。把上一步用到的资源复制到和pys.spec同一个目录下。
  3. 再次打包。pyinstaller -F C:\pyproj\pys.spec注意是spec文件,会再次生成build和dist文件夹,exe生成在dist里,可以单独把exe放任意目录。
  4. 实践可行,无bug。

注意:data里的资源要在和pys.py同级目录。
另外,这个目录最好只有一个py文件,否则运行打包后的exe可能出现modulenotfound错误。

python 打包exe(包含把资源文件打进包)相关推荐

  1. Android中打包含有Activity以及资源文件的jar包在工程中调用

    如何将资源以及activity文件打包成jar文件供项目调用,从android的官方文档中找到的完美的解决,这里做一个总结. 最近刚刚发布了一款小应用<诗词大全>,有兴趣的朋友请实用提出您 ...

  2. 使用pipenv建立虚拟环境解决python打包exe文件过大的问题(附打包带图标,多个py文件打包exe)

    我们编写的程序可以发给其他小伙伴使用,但是其他小伙伴不一定安装有python.这时候就需要用到打包啦.打包可以将程序打包成exe文件.然后小伙伴在windows平台里就可以运行(无需python).直 ...

  3. 浅试python打包exe文件 + ico图像制作

    目录 1. python打包exe文件教程 2. ico图像制作 2.1 找ico 2.2 转ico 1. python打包exe文件教程 在B站上看了两个教程: Py文件打包成exe文件直接用 Py ...

  4. python打包exe报错_python 程序打包为 windows 可执行程序 exe

    1,使用到的程序 1,python 2,pyinstaller 2,安装 pyinstaller pip install pyinstaller 3,安装可能出现的问题与报错 1:AttributeE ...

  5. python打包exe之打包深度学习模型踩坑记录及其解决办法。

    在现实生活中,有时候我们写的程序需要发给小伙伴用,而小伙伴没有python,这时候我们需要将程序打包成exe文件发给小伙伴用. 今天讲下打包深度学习模型 打包一般要用到cmd命令行,要求cmd能执行p ...

  6. python打包exe 之打包sklearn模型中的各种坑及其解决方法。

    之前学习了如何打包,如何建立虚拟环境打包,以及如何带资源打包exe. python打包成exe 可执行文件 .教程 使用pipenv建立虚拟环境解决python打包exe文件过大的问题(附打包带图标, ...

  7. python打包exe报错编码问题,使用Python打包含有pymssql成exe所躺的坑

    一.如何打包 Python打包exe文件简单运用pyinstaller库就行了 1)安装pyinstaller库(自行安装) 2)win+R打开运行窗口输入"powershell" ...

  8. Python打包exe并不闪退

    Python打包exe 近期自己做了一个小demo要分享给朋友,但是朋友又没有python环境,所以打包成exe.下面就记录一下自己打包exe方法 工具 Python 3.6.2 Pyinstalle ...

  9. C#如何打包EXE程序生成setup安装文件

    C#如何打包EXE程序生成setup安装文件 作为研发人员,在本机上开发的winform wpf或者控制台程序需要发给其他人测试时候,一般需要对其进行打包生成setup安装文件,今天第一次,搜了下资料 ...

  10. 关于python打包exe文件的教程(专治痛点)

    本次我想打包的是hand-write-main的项目作为例子! 当你想要打包的项目成exe文件与其他项目使用同一虚拟环境时,建议重新生成一个虚拟环境. 像我这里许多项目都是公用一个叫pytorch_g ...

最新文章

  1. 编译Cocos2dx程序 (一)
  2. 第80节:Java中的MVC设计模式
  3. 【译】SQL Server索引进阶第八篇:唯一索引
  4. Android studio | From Zero To One ——初级控件(屏幕显示)
  5. 业务活动监视器(BAM)2.0带来的革命
  6. JAVA:网络编程总结
  7. matlab7.0编辑运行,手把手解答win10系统运行matlab7.0时提示Runtime error的操作方案
  8. 科普文:为什么不能在服务器上 npm install ? #30
  9. Mac精品软件分享第二期
  10. echart 高度 不用 不撑满_装修干货:橱柜高度到底要多高才合适?
  11. 怎么使用计算机的移动与复制,Excel移动和公式的复制
  12. 【PAT】1001 害死人不偿命的(3n+1)猜想
  13. 【实习】【算法】百度面经之四
  14. 浅析基于微软SQL Server 2012 Parallel Data Warehouse的大数据解决方案
  15. 微信服务号开发IOS设备js-sdk认证失败问题总结
  16. 前阿里GOC负责人葛梅:运维转型运营,IT服务管理体系搭建实践
  17. 穿山甲广告。swift穿山甲广告40001报错
  18. salt内置执行模块列表
  19. 家用计算机手抄报,大学计算机作业手抄报
  20. 转【JMeter】--JMeter下载及使用

热门文章

  1. 用计算机将复数转换成角度,卡西欧FX-991ES计算器能计算电路里的复数加减乘除然后换算成角度吗?...
  2. 用PS制作电子签名方法总结
  3. 计算机网络:四类数据编码技术
  4. 解决outlook2016 中邮件中,点击链接提示(您的组织策略阻止我们为您完成此操作)解决方案
  5. python实现对文件夹的图片分类存放(自动新建文件夹存放图片)
  6. 增长率用计算机怎么算,操作方法:Excel使用公式来计算增长率教程
  7. iOS 出现:不受信任的开发者 弹框
  8. 计算机表格里的隐藏怎么弄出来怎么办,电脑屏幕的excel表格最后一行看不到怎么办《excel表隐藏的表格怎么展开》...
  9. 分类变量——卡方检验
  10. 《Java程序设计》在线课程使用说明-2021版