使用PyInstaller将python转成可执行文件exe笔记

作者:mdxy-dxy 时间:2021-11-08 04:12:51 

1、安装PyInstaller

PyInstaller的作用如标题所说,首先需要下载PyInstaller和UPX,UPX是用来压缩exe的,点击超链接下载吧,目前稳定版本是1.3,注意选择你使用的操作系统。如在Windows下,将下载解压后的upx.exe放到PyInstaller解压后的文件夹内。设PyInstaller的文件夹为D:\PyInstaller,下同。命令行下进入D:\PyInstaller,运行Configure.py,应该看到如下信息:

I: computing EXE_dependencies
I: Finding TCL/TK...
I: found TCL/TK version 8.5
I: testing for Zlib...
I: ... Zlib available
I: Testing for ability to set icons, version resources...
I: ... resource update available
I: Testing for Unicode support...
I: ... Unicode available
I: testing for UPX...
I: ...UPX available
I: computing PYZ dependencies...

不能出现开头为E(Error)的信息,最好不要有W(Warning)的信息。如果出现找不到某dll,请把该dll文件放置到C:\Windows\system32下,一般能解决。

Linux用户还需要编译Runtime Executables,Windows用户不需要。主要是运行Make.py,会在PyInstaller\support\load\下生成run和run_d两个文件,详见PyInstaller\doc\Manual.html说明。

2、写一个Py程序

为了实验,写一个HelloWorld.py,假设保存在C:\HelloWorld.py


#!/usr/bin/env python
print 'Hello,World!'
words = raw_input('What do you want to say? ')
print 'you said:'+words

3、创建spec文件

spec文件是用来告诉PyInstaller要编译的py文件和参数的。执行"Makespec.py+参数+Py代码路径"就可以,主要参数如下(详见PyInstaller\doc\Manual.html):

-F, --onefile Py代码只有一个文件
-D, --onedir Py代码放在一个目录中(默认是这个)
-K, --tk 包含TCL/TK
-d, --debug 生成debug模式的exe文件
-w, --windowed, --noconsole 窗体exe文件(Windows Only)
-c, --nowindowed, --console 控制台exe文件(Windows Only)
-X, --upx 使用upx压缩exe文件
-o DIR, --out=DIR 设置spec文件输出的目录,默认在PyInstaller同目录
--icon=<FILE.ICO> 加入图标(Windows Only)
-v FILE, --version=FILE 加入版本信息文件

对于HelloWorld.py,具体执行以下代码:

Makespec.py --onefile --console --upx --tk -o C:\ C:\HelloWorld.py

执行后C:\就出现HelloWorld.spec

4、Build spec文件,生成exe文件

执行:

Build.py C:\HelloWorld.spec

一长串信息之后,你会在C:\下发现HelloWorld.exe这个文件,就是它啦!体积还真不小,2.7M,这是因为这个HelloWorld程序杀鸡用牛刀罢了。此外其它的文件均是过程文件,可删除。

标签:python,exe
0
投稿

猜你喜欢

  • 用OpenCV进行年龄和性别检测的实现示例

    2021-02-17 18:18:19
  • 用python生成一张壁纸实例代码

    2022-06-06 10:26:51
  • oracle删除已存在的表的实例

    2024-01-16 19:24:58
  • Pytorch 使用不同版本的cuda的方法步骤

    2023-02-06 07:52:23
  • Go语言利用time.After实现超时控制的方法详解

    2024-04-26 17:21:50
  • ORACLE数据库应用开发常见问题及排除

    2010-07-26 13:17:00
  • 数据库的选择原则是什么?

    2010-07-14 21:05:00
  • python动态文本进度条的实例代码

    2021-11-15 02:11:50
  • Python安装Imaging报错:The _imaging C module is not installed问题解决方法

    2021-05-19 06:09:39
  • python实现TCP服务器端与客户端的方法详解

    2023-05-17 09:39:39
  • ASP连接MySQL数据库代码示例

    2010-03-14 11:24:00
  • Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项

    2021-11-15 18:53:31
  • 利用Python绘制好看的玫瑰花图

    2022-01-05 00:14:56
  • MySQL中组合字段之concat()

    2024-01-26 04:36:54
  • GO语言(golang)基础知识

    2024-02-13 18:04:03
  • Golang精编49面试题汇总(选择题)

    2023-07-12 23:49:44
  • 详解Python结合Genetic Algorithm算法破解网易易盾拼图验证

    2023-05-22 01:34:36
  • Vue日期时间选择器组件使用方法详解

    2024-05-02 16:35:27
  • scrapy-redis分布式爬虫的搭建过程(理论篇)

    2022-04-25 20:49:25
  • python简单利用字典破解zip文件口令

    2023-06-27 05:36:31
  • asp之家 网络编程 m.aspxhome.com