前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何做一个任何电脑都能用的python程序?

如何做一个任何电脑都能用的python程序?

作者头像
sjw1998
发布2019-09-28 12:43:46
3.7K0
发布2019-09-28 12:43:46
举报
文章被收录于专栏:孤独的S

有时候你做好了一个小游戏或者小程序想要打包发送给别人玩或者用的时候,直接发过去,如果别人没有python环境的话,那肯定是用不了的,这时候你需要将程序打包成exe程序。

将python打包成exe的方法有两种,一种是pyinstaller,另一种是py2exe.

两者各有优缺点,不过现在大部分都使用pyinstaller去打包exe,为什么不用py2exe,后面你就知道了。

关于pyinstaller

首先是用pyinstaller去打包python程序,这里我用的python程序是python---贪吃蛇的代码。

要使用pyinstaller,首先先安装pywin32,然后再安装pyinstaller,安装方法直接用pip安装即可。pyinstaller也是支持python3.7的,所以可以放心使用,但是对于其他的库,可能就会有版本问题,所以很容易出错。

pip install pywin32

pip install pyinstaller

安装pyinstaller好后

使用pyinstaller的方法也很简单,用cmd窗口也行,这里我用的是在pycharm里,如果用cmd的话需要先cd到项目的目录下面,然后在输入

pyinstaller -F -w 程序名.py。在pycharm环境下, 首先打开terminal。

然后这里本身就是项目文件下面了,所以不用cd过去,直接在这里输入,pyinstaller -F -w 程序名.py

然后等待出现成功字样即可

这样就打包成功了。然后去项目文件下,会发现新增了三个东西,两个文件夹和一个spec文件

然后我们的exe文件就在dist文件下面,双击打开就可以运行了。

因为没加图标,所以这里默认是这个图标,当然可以自己修改。

下面是一些常用的命令

-h,--help

查看该模块的帮助信息

-F,-onefile

产生单个的可执行文件

-D,--onedir

产生一个目录(包含多个文件)作为可执行程序

-a,--ascii

不包含 Unicode 字符集支持

-d,--debug

产生 debug 版本的可执行文件

-w,--windowed,--noconsolc

指定程序运行时不显示命令行窗口(仅对 Windows 有效)

-c,--nowindowed,--console

指定使用命令行窗口运行程序(仅对 Windows 有效)

-o DIR,--out=DIR

指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件

-p DIR,--path=DIR

设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径

-n NAME,--name=NAME

指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字

如果还想要去查看更详细的指令,可以用pyinstaller -h查看

所以根据上表,创建单个执行文件,且不显示命令行窗口的程序就是

pyinstaller -F -w 程序名.py

如果想要给程序换一个图标可以加个-i

pyinstaller -F -w -i 图标文件名 程序名.py

打包后之后你的项目会出现两个文件夹,分别是build和dist,以及一个spec文件。

有时候打包之后会出现这个问题,

在我这里就是版本问题,把numpy回退一下版本,换成低一点的版本即可。

有的时候可能是因为没有模块之类的,你可以将-w去掉,然后就可以看弹出的命令行窗口显示的是什么错误,解决后重新打包即可。

当你运行打包后的程序出错的时候,可以去pyinstaller的官方手册下面查看,是否有一致的问题。

官方手册:https://pyinstaller.readthedocs.io/en/stable/when-things-go-wrong.html

正如我刚刚说的,他这里提供了一些debug的方法。

我们打包的时候会出现的一个spec文件,

一个spec文件的内容:

这是一个规范文件,摘手册的话来说就是:

当你执行

pyinstaller 选项 ..myscript.py

PyInstaller做的第一件事就是构建一个规范(规范)文件 myscript.spec。该文件存储在--specpath=目录中,默认为当前目录。

spec文件告诉PyInstaller如何处理你的脚本。它对脚本名称和您为pyinstaller命令提供的大多数选项进行编码。spec文件实际上是可执行的Python代码。 PyInstaller通过执行spec文件的内容来构建应用程序。

对于PyInstaller的许多用途,您不需要检查或修改spec文件。通常足以将所有需要的信息(例如隐藏的导入)作为pyinstaller命令的选项并让它运行。

如果你想要进行更加的复杂的添加数据文件,使用模块中的数据文件,都需要用spec文件,可以通过阅读他的官方手册

https://pyinstaller.readthedocs.io/en/stable/spec-files.html

关于PY2exe

关于py2exe,在python3.7的环境下可以下载,但是并不能使用,由于我的虚拟机问题很多,所以就没有去验证py2exe的使用方法。

py2exe的打包方法是要创建一个python程序进行打包的

例如

代码语言:javascript
复制
from distutils.core import setup
import py2exe

setup(windows=["snake.py"])

具体的内容可以去py2exe的官网阅读

http://www.py2exe.org/index.cgi/FrontPage

版本太过老旧了,本来我打算用虚拟机下载一个旧版本的python去打包一下的,可是py2exe并不支持其他操作系统仅支持windows

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 孤独的S 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档