【01】Python打包输出为.exe可执行文件

这是我的第01篇博客

Python打包输出为.exe可执行文件

  在完成了之前的爬虫以后,为了给电脑上没有Python环境的朋友玩我的爬虫,开始尝试把爬虫的.py文件输出成.exe可执行文件。

  首先,Python的教程上提到了py2exe的模块。但是一波搜索以后发现这个玩意只支持到Python3.4,而我用的是Python3.5.2,这让我很尴尬......于是继续一波搜索,发现了一个叫PyInstaller的模块。这个模块可以完美支持Python3.5,于是怒入。

  首先是安装。去sourceforge上费了好大劲下载下来的zip文件却死也不知道怎么安装....[捂脸] 对于这种没有exe安装的东西,英文文档显然是懒得去查的,而网上的各路教程通过cmd界面进行操作,还有说解压完就算安装好了的,然而就是没法用......也许我的姿势不对...

  那么换个方法。到这里我才发现Windows下也可以像Linux一样很方便的用命令行安装程序。如果你的电脑已经安装好Python,有pip的话,就可以打开cmd,然后键入以下指令:

pip install PyInstaller

  然而,如果是国内网,可以无视这一条方法了。必报错。请在科学上网以后执行这条指令。如果有权限的报错,请尝试用管理员权限运行cmd。

  然后就可以非常非常爽快的安装完这个模块了,而且会自动帮你装pywin32模块(如果没有的话),安装完甚至会提示你的pip可以更新了(如果版本太老的话).....简直太良心了好嘛.....唯一的缺点就是不搭梯子没法用。

  安装完以后,就可以用这个模块愉快的把你的py编译成exe给小伙伴装逼啦!!hhhhh

  然而还没这么简单。编译有两种方法:命令行方式和直接Python文件调用方法。

首先是命令行方式:

  在命令行下进入你的py文件所在目录(进入别的盘符输x:,例如d:  ;然后cd x:\.....你的目录)

  然后输入以下指令:(***.py为你要编译的文件名)

pyinstaller ***.py

  然后等待编译完,在该目录下会新生成四个东西,一个***.spec文件(***和你的py文件同名),一个__pycache__文件夹,一个dist文件夹和一个build文件夹。你要的exe就在dist文件夹里。但是,拷给小伙伴的时候记得把整个文件夹都拷给他们,这一整个文件夹都是exe的一部分。(其他的都是编译过程中的中间文件,输出完就可以删掉了)

  你一定想,这么多东西真是麻烦啊,怎么只输出一个exe呢?那就要加一个单文件的参数-F,如下:

  (其实可用的参数还有不少,在法二中介绍)

pyinstaller -F ***.py

  然后你就会愉快的发现这时候dist下只有一个exe啦哈哈哈可以愉快的装逼啦wwwww

  でも!!还有更方便的方法!

直接Python文件调用方法:

  在Python中直接调用这个模块,会比cmd更方便,至少我是这么认为的。至少,以后再要输出只要把这个文件复制一波,改一两个参数就可以了,简直爽啊。

方法如下:

  首先,在要编译的***.py同目录下创建一个py文件:TargetPy2exe.py(当然其他随便xjb一个名字都可以)

  然后,在其中写入以下代码:

1 #code by STeveHawk
2 #Email [email protected]
3
4 from PyInstaller.__main__ import run
5 if __name__ == ‘__main__‘:
6     opts = [‘***.py‘,‘-F‘,r‘--distpath=**‘,r‘--workpath=**‘,r‘--specpath=**‘,r‘--icon=**‘]
7     run(opts)

  调整完参数运行就可以输出exe了。

  代码中,opts= 后面的列表里的就是一系列参数,详解如下:

  第一个***.py就是你要编译的文件名,必填 [之后的参数全部为选填]

  第二个-F就是生成单文件的参数

  第三个--distpath=**意思是dist文件夹(最后输出文件所在地)的路径,**为路径,比如D:\My Programs\Python\输出\dist,默认为当前目录下的dist文件夹内

  第四个--workpath=**意思是build文件夹(临时文件)的路径,**为路径,比如D:\My Programs\Python\输出\build,默认为当前目录下的build文件夹内

  第五个--specpath=**意思是***.spec文件(临时文件)的路径,**为路径,比如D:\My Programs\Python\输出\,默认为当前目录

  第六个--icon=**意思是输出的exe文件的图标路径,**为路径,比如D:\My Programs\Python\icon.ico

  对于图标,最好到一个叫png2ico的网站上在线生成你所需的ico图标文件,注意,直接把一个jpg图片文件改后缀成.ico会报错 [我一开始就是刷小聪明在这上面耗了好久才发现问题的....(捂脸)]。在png2ico上转换图片的时候,大小记得点auto,这样生成的ico文件会内置四种大小的图标以供系统缩放的需求。

  注意,我在后四个参数的引号前面都加上了r,这是因为不加r会出现各种问题,例如反斜杠导致的转义字符捣乱,以及有些中文目录名里的中文会变成16进制的utf-8码来显示导致路径错误。在这些字符串前加上r(raw)以表示原始字符串就能解决这些问题了。

32 & 64位的问题

  另外,关于输出exe文件的32位和64位的问题。这个问题的起因是我的电脑上安装了64位的Python环境,然后用pyinstaller输出的exe文件就是64位的了。然而小伙伴的电脑是32位的,于是妥妥的没法运行了。这就让我很尴尬了.....没法好好装逼了不是...于是怎么输出32位的exe呢?其实很简单,你的Python环境是32位的,输出的exe就会是32位的,64位的就会输出64位的。如果你想既输出32位的,又输出64位的,以下是方法:

  首先分别安装32位和64位的Python环境,并分别安装pyinstaller。切记,安装完一个环境就要立马用pip install pyinstaller安装pyinstaller。如果已经装完了两个环境再安装pyinstaller,会有一个环境安装成功,但是再次运行会提示已经安装,另一个环境会无法成功安装。成功给两个环境装好pyinstaller了以后,如果用cmd命令行的方式调用会出现问题,至少我的电脑上会有这个问题。目前我还不清楚怎么在cmd下分别调用两个环境。这时候Python文件调用的方法就会方便很多。以我使用的pycharm为例,显然要编译的***.py和TargetPy2exe.py是在同一个工程下的。这时,在File选项卡下,打开Setting选项,在Setting窗口左侧栏中找到Project:***(***为工程名)选项,点击左侧灰色三角打开下拉菜单,里面点击Project Interpreter选项,然后在右侧窗口里上面的下拉菜单里选择所需的32位或者64位解释器。选好以后点击下面的OK即可。第一次可能需要等待一会才能运行。然后运行TargetPy2exe.py就可以生成你要的32/64位的exe啦!!

  不过这只是对于我这种强迫症类型的人适用的方法。如果嫌烦,只需要装一个32位的Python环境就可以了,因为64位系统下可以兼容32位的程序.....这是最简单的解决办法。

以上。

时间: 2024-10-10 12:37:18

【01】Python打包输出为.exe可执行文件的相关文章

将Python脚本封装成exe可执行文件 转

将Python脚本封装成exe可执行文件 http://www.cnblogs.com/renzo/archive/2012/01/01/2309260.html cx_freeze是用来将 Python 脚本封装成可执行程序的工具,支持最新的Python3.2版本.生成的执行文件具有跨平台性,而且运行的系统无须安装Python.目前类似功能的工具还有py2exe 和 PyInstaller,其中貌似py2exe知名度最高了,但是很久没有更新了,至于打包质量不做评价,毕竟萝卜青菜各有所爱:PyI

python编译成windows exe可执行文件

pyInstaller是一款用于将pyhon程序打包成exe文件的工具,pyInstaller不是一个python的包, 只需要把pyInstaller的文件下载下来放到任意为止都可以,也就是说pyInstaller相当于独立出来专门干打包python的工具,这货是工具不是库,下面我来介绍pyInstaller安装方法 pyInstaller是一款用于将pyhon程序打包成exe文件的工具,pyInstaller不是一个python的包, 只需要把pyInstaller的文件下载下来放到任意为止

Python打包-py2exe使用

Py2exe 64位下载地址:http://download.csdn.net/detail/henujyj/8532827 Py2exe 32位下载地址:https://sourceforge.net/projects/py2exe/files/   以下程序执行的结果是将hello.py程序打包成hello.exe可执行文件 第一步,编写hellp.py: #-*_coding:utf-8-*- import Tkinter from Tkinter import* a = Tk() a.w

Python如何打包EXE可执行文件

一.安装Pyinstaller 使用Python打包EXE可执行文件时,需要使用Pyinstaller,使用命令pip install PyInstaller进行安装,如下图: 安装成功后的效果如下图(这里主要计算机需要联网,因为需要下载安装包): 安装完Pyinstaller后,就可以使用它对.py文件进行打包了,打包分两种情况,一种是打包控制台程序,另外一种是打包使用类似PyQt设计的GUI程序 二.打包控制台程序 打开cmd命令窗口,使用cd命令切换到.py文件所在路径,然后使用pyins

用pyinstaller把python代码打包成exe可执行文件

优点: 1. pyinstaller 是跨平台的可以用在linux和windows系统上 2. 操作非常简单,几个命令就搞定了,这个比py2exe容易用多了 缺点: 1. 打包后的体积过大,因为要带python.dll库,所以没有办法 2. 不能和tkinter 等库,打包成单独一个文件 1.下载pyinstaller 目前pyinstaller支持的python版本为2.3-2.7,可以到http://www.pyinstaller.org/官网下载. 2.安装 下载完成后,解压即可. 3.p

Python的.py文件打包成exe可执行文件

前几天做了几个简单的爬虫python程序,于是就想做个窗口看看效果. 首先是,窗口的话,以前没怎么接触过,就先考虑用Qt制作简单的ui.这里用前面sinanews的爬虫脚本为例,制作一个获取当天sina头条新闻的窗口. 生成py文件后,运行该py文件,这里窗口我只是随便拖了几个组件进去,主要的text browser用于显示获取到的sinanews. 首先贴一下我的配置(点击即可官方下载):Python 3.3.3 PyQt5-5.2.1 for Py3.3(当安装完Python3.3后,安装对

Python打包EXE文件

Python程序打包工具 Python是一个脚本语言,被解释器解释执行.它的发布方式: .py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库.(Python官方的各种安装包就是这样做的). .pyc文件:有些公司或个人因为机密或者各种原因,不愿意源码被运行者看到,可以使用pyc文件发布,pyc文件是Python解释器可以识别的二进制码,故发布后也是跨平台的,需要使用者安装相应版本的Python和依赖库. 可执行文件:对于非码农用户或者一些

py脚本打包exe可执行文件

python3以上版本打包exe需要扩展软件:cx_freeze 下载地址:http://cx-freeze.sourceforge.net/ 1)安装后在\Python32\Scripts\cxfreeze.bat和\Python32\Scripts\cxfreeze-quickstart.bat文件中更改python实际路径,如: C:\Python32\python.exe C:\Python32\Scripts\cxfreeze %*改为D:\Python32\python.exe D:

python制作exe可执行文件的方法---使用pyinstaller

python生成windows下exe格式的可执行程序有三种可选方案: py2exe是大家所熟知的,今天要介绍pyinstaller, 这个工具全平台可用.我曾使用python制作一个工具程序供公司同事使用后,由于公司使用mac linux windows都有很多,就使用过它来将程序做成可执行文件,兼容性好,只是会使得程序在linux平台和mac平台启动较慢(windows还是比较快的),但基本够用. 安装完pyinstaller之后就可以开始了. 1.使用pyinstaller生成可执行文件的