#0x01 背景

这两天写了一个抽奖的Python脚本,要生成可执行文件,总不能一直在sublime上运行吧,或者运行前先安装Python,所以就查了一下怎么生成可执行文件,本篇包括mac下和win下,经本人测试,mac下生成.app(mac下的可执行文件为.app后缀)较win下容易一些。

我用的Python版本为:macOS下3.7,win下3.6;系统版本为:macOS 10.13 ;windows 10;

#0x02 准备工作

macOS下:mac下比较容易,仅需下载一个pyinstaller就可以了。在终端下输入命令行

pip install pyinstaller

windows下:windows下比较麻烦一些,需要先安装pywin32,再安装pyinstaller,故执行顺序为:

1.在pywin32的github上下载对应版本安装:网站链接,最好下载最新的版本,我下的是224版本,下载好后安装;

在安装过程中如果出现找不到Python模块,可以将下面的Python代码运行一下,亲测可用(这是网上一位大神写得代码,具体出处找不到了,如遇作者请联系我标明,谢谢)。

importsysfrom winreg import *

#tweak as necessary

version = sys.version[:3]

installpath=sys.prefix

regpath= "SOFTWARE\\Python\\Pythoncore\\%s\\" %(version)

installkey= "InstallPath"pythonkey= "PythonPath"pythonpath= "%s;%s\\Lib\\;%s\\DLLs\\" %(

installpath, installpath, installpath

)defRegisterPy():try:

reg=OpenKey(HKEY_CURRENT_USER, regpath)exceptEnvironmentError as e:try:

reg=CreateKey(HKEY_CURRENT_USER, regpath)

SetValue(reg, installkey, REG_SZ, installpath)

SetValue(reg, pythonkey, REG_SZ, pythonpath)

CloseKey(reg)except:print("*** Unable to register!")return

print("--- Python", version, "is now registered!")return

if (QueryValue(reg, installkey) == installpath andQueryValue(reg, pythonkey)==pythonpath):

CloseKey(reg)print("=== Python", version, "is already registered!")returnCloseKey(reg)print("*** Unable to register!")print("*** You probably have another Python installation!")if __name__ == '__main__':

RegisterPy()

View Code

2.下载pyinstaller,这里和mac一样,直接pip安装

pip install pyinstaller

注:pip版本为9.多少来着以上最好,现在应该已经到了18以上

#0x03 编译生成

在以上步骤安装好后,就可以进行编译生成文件(注:mac下生成的文件只能在mac下运行,windows下生成的文件也只能在windows下运行)

1.首先切换到项目的目录,也就是Python脚本的位置

cd 脚本的位置

2.使用pyinstaller生成

pyinstaller test.py

可以看到,现在已经生成若干文件和文件夹,在dist文件夹下就可以找到与Python文件同名的可执行文件,(mac下为test.app,win下为test.exe)

3.每次运行都需要打开命令行窗口怎么办,而且文件众多,不好找,所以可以使用下面的代码,(这个是我自己比较常用的代码)

pyinstaller -F -w test.py

这里-F指的是生成仅一个文件,-w指的是不打开命令行窗口。

#0x04 另附pyinstaller常用命令

注:-i命令需要.ico图标

python编译成可执行文件 发布 win_[PYTHON]_ELVE_Python源代码文件编译成可执行文件(支持macOS High Sierra和window 10)...相关推荐

  1. linux 多源代码文件编译

    linux 多源代码文件编译 2013-04-10 14:36:28 分类: LINUX 前面一节介绍了Linux下头文件的一些基础知识,有内核头文件和用户空间头文件,但之后的讲解,都是基于用户空间的 ...

  2. Android录屏并利用FFmpeg转换成gif(四) 将mp4文件转换成gif文件

    Android录屏并利用FFmpeg转换成gif(四) 写博客时经常会希望用一段动画来演示app的行为,目前大多数的做法是在电脑上开模拟器,然后用gif录制软件录制模拟器屏幕,对于非开发人员来讲这种方 ...

  3. Python 2.7.18 发布,Python 2 时代结束

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://www.oschina.net ...

  4. python代码如何做成应用程序_Python的源代码如何转成可以执行的应用程序?

    一.安装pyinstaller 如果你用的是pycarm,直接在setting里面找到pyinstaller的库安装即可. 有一点要注意的是,并非所有的python都支持pyinstaller,目前的 ...

  5. xml文件转换成图片_怎样能把PDF文件转换成图片?

    我们的日常生活工作中时常碰到pdf与Excel.Word.ppt和jpg等文件格式的转换,有时候由于工作的需要,要把PDF文件转换成图片.并且现在网上的很多素材都是PDF文件格式的,如果我们想要里面的 ...

  6. 怎么用wps将pdf转换成html,如何将PDF格式的文件转换成HTML格式

    PDF文件可以转换成HTML的格式吗?不少人可能会遇到这个问题,要知道我们现在所用到的软件大体上是由网页代码组成,也就是所谓的HTML网页代码.考虑到代码的一些特性,一般都会将编辑的代码都保存为PDF ...

  7. 【Python培训基础】一篇文件教你py文件打包成exe

    场景: 如果要将我们编写好的代码给别人使用,如果要他们直接使用我们的代码,就需要安装各种编译软件以及第三方模块,还要对软件操作,编程有一定的了解,这对使用者的要求比较高,不是很方便,为了解决这一问题, ...

  8. jcreator把class字节码文件转成.java源文件_如何将.JAVA文件编译成.CLASS文件.说明方法和工具,或用JCreator如何操作?...

    http://www.newiter.com/showart.asp?id=33 由于比较长,建议点击上面链接进入继续浏览 对于很多应用系统,常常需要动态装载和执行类和代码片断,这有利于部署的简易性和 ...

  9. html怎么转换成asp.net,Asp.net中将Word文件转换成HTML的方法

    本文所述为一个Asp.net实现将Word转换为HTML的功能,其关键代码如下: //存放word文件的完整路径 string wordPath = Server.MapPath("/wor ...

  10. php动态网页转换成html,怎么把动态的php文件转换成静态的html文件,html文件是php文件…...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 生成静态文件除了2楼所说的ob缓存方法之外,还有一种方法就是通过使用模板替换技术实现(正则表达式) header("content-type:t ...

最新文章

  1. ns 25的IKE模式ipsec ***配置
  2. 设置JAVA环境变量
  3. 神奇的HyperLogLog算法
  4. 山东省枣庄市台儿庄区云平台运维故障处理一例
  5. 【实践】文本相关性和知识蒸馏在知识蒸馏中的应用实践
  6. Android 系统各个版本上https的抓包
  7. rdkit Recap、BRICS分子片段拆分与合成
  8. 双目视觉(三)立体匹配算法
  9. Unity3D 本地数据持久化记录存储
  10. FCFS进程调度算法
  11. android加密字符串,Android 加密解密字符串详解
  12. %CRYPTO-4-RECVD_PKT_INV_SPI: decaps: rec'd IPSEC packet has invalid spi 解法方法
  13. 情人节送男生的礼物,情人节送礼清单
  14. 计算机常见故障ppt,计算机硬件组成与常见故障排错.ppt
  15. 【单镜头反光相机】Nikon尼康
  16. 如果查询本机ip地址?
  17. 深入笔记(为了记录一些图片)
  18. 商标注册的材料和流程有哪些
  19. 元数据核心架构解析(PPT)
  20. 电视剧那些眼睛出血的剧情:都出血了,他们为什么没瞎?

热门文章

  1. 用银行卡号查相应的归属银行,卡种类
  2. 软件工程(二)——过程模型
  3. 变限积分求导公式总结_积分变限函数求导的基本方法
  4. 100m光纤测速多少正常_100m宽带wifi测速多少为正常
  5. linux mbr efi 分区吗,几个概念:MBR,GPT,EFI分区,混合分区表,BootCamp
  6. 基于STM32的MLX90614(GY-906)人体红外测温
  7. 基于jquery读取csv
  8. 谷粒商城【商城系统】完整总结
  9. 【工具推荐】下载github部分文件
  10. hosts文件的作用