py编译exe
⑴ 如何将自己编写的.py文件转换为可执行.exe文件
利用python写了一个小脚本想要传给使用Windows但没有装Python的朋友执行,这时候就可以利用将档案包装成exe档案,让没有Python的朋友也可以执行。本篇将介绍利用套件“PyInstaller”制作exe档。
1|0安装方法
1234
#安装pyinstallerpip install pyinstaller#安装依赖pip install pywin32-ctypes
2|0常用参数介绍
pyinstaller -h来查看参数
-F打包成一个exe文件
-i图标路径
-w使用视窗,无控制台
-c使用控制台,无视窗
-D创建一个目录,包含exe以及其他一些依赖性文件
编译文件时,我们通常使用如下命令:
pyinstaller -F -w -i favo.ico main.py
3|0静态文件
对于python所依赖的图片,config.yaml等静态文件,pyinstall不会自动打包,需要手动在main.py(所需要打包的入口文件)的相同目录中寻找main.spec,修改datas依赖,才可以自动打包到exe的相同目录下,然后执行即可
datas是一个数组,每个子项是一个tuple,其中tuple的第一个参数是你要打包的源路径,第二个参数是打包后的名字
12345678910111213141516
# -*- mode: python -*- block_cipher = None a = Analysis(['ui.py'],pathex=['C:\\Users\\user\\Desktop\\resilio\\toyou\\code\\zeus_board_test'],binaries=[],datas=[('C:\\Users\\user\\Desktop\\resilio\\toyou\\code\\zeus_board_test\\images','images'),('C:\\Users\\user\\Desktop\\resilio\\toyou\\code\\zeus_board_test\\question.yaml','question.yaml')],hiddenimports=[],hookspath=[],runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,noarchive=False)
然后执行:
pyinstaller -F main.spec
4|0示例
如下图所示,我们编写一个输出helow pyinstaller的Python程序,并利用input()使程序可以暂时停在输出画面。
12
print('helow pyinstaller')input('please wait:')
编译python为exe,编译过程中会自动安装相关依赖
pyinstaller -F hello.py
编译过程中会产生如下输出:
1234567891011121314
…6942 INFO: checking PY6944 INFO: Building because toc changed6944 INFO: Building PYZ(ZlibArchive)C:\Users\user\Desktop\test\build\test\PYZ-00.pyz7559 INFO: Building PYZ(ZlibArchive)C:\Users\user\Desktop\test\build\test\PYZ-00.pyz completed successfully.7568 INFO: checking PKG7569 INFO: Building because toc changed7569 INFO: Building PKG(CArchive)PKG-00.pkg9407 INFO: Building PKG(CArchive)PKG-00.pkg completed successfully.9409 INFO: Bootloader c:\users\user\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\bootloader\Windows-64bit\run.exe9409 INFO: checking EXE9411 INFO: Building because toc changed9411 INFO: Building EXE from EXE-00.toc9412 INFO: Appending archive to EXE C:\Users\user\Desktop\test\dist\test.exe9455 INFO: Building EXE from EXE-00.toc completed successfully.
通过输出可以看出pyinstaller进行了如下操作:
会先建立一个hello.spec
建立“build”文件夹
建立log纪录档与工作档案于文件夹build中
建立“dist”文件夹
建立执行档(.exe)在“dist”文件夹
4|1注意事项
执行档案可在win8/win10,64位的电脑运行,但win7 x64和其余所有32位失败,会提示不兼容,若要能32位与64位皆可运行,就要在Python 32位的环境下编译PyInstaller打包exe,才能在32位与64位成功。
⑵ 怎样用pycharm 把.py文件编译成可以单独运行的exe文件
解释器文件和解释器
先解释两个概念;解释器文件和解释器。
l 解释器文件:一种文本文件,开头通常是:#! pathname [option-argument];比较常见的是#! /bin/bash,shell脚本和python脚本都属于解释器文件。
l 解释器:解释器文件第一行中pathname指定的程序,如bash。
3.1 解释器文件的执行
当执行(exec)"解释器"文件时,exec系统调用会识别这种文件,内核使调用exec函数的进程实际执行的并不是该"解释器文件",而是pathname指定的解释器。
我们可以自己写一个解释器,如之前所写的foo.c:
l foo.c
#include <stdio.h>
int
main(int argc,char* argv[])
{
⑶ 怎样将写好的.py文件生成exe可执行文件
python制作exe可执行文件的方法---使用pyinstallerpython生成windows下exe
格式的可执行程序有三种可选方案:py2exe是大家所熟知的,今天要介绍pyinstaller,这个工具全平台可用。我曾使用python制作一个工
具程序供公司同事使用后,由于公司使用maclinuxwindows都有很多,就使用过它来将程序做成可执行文件,兼容性好,只是会使得程序在
linux平台和mac平台启动较慢(windows还是比较快的),但基本够用。安装完pyinstaller之后就可以开始了。1.使用
pyinstaller生成可执行文件的方法1.1将依赖文件集中到一个文件夹:pyinstaller-D-wmain.py#把main.py替换成
你的主入口python文件即可。-w参数代表main.py是一个窗体程序。1.2将所有依赖文件都打包到同一个可执行文件
中:pyinstaller-F-wmain.py2.调查pyinstaller生成程序的加载过程使用如下命令,可以得到运行时的跟
踪,tracing,loader的加载过程。pyinstaller-Fwdaui.py#把aui.py换成你需要侦测的文件即可。
⑷ 使用py2exe 编译 exe总是出错
setup(console=["hello.py"]) 文件名要加引号
⑸ python写的程序,转成了exe文件,怎么进行反编译为python源码
1、电脑桌面,输入“win+R”组合键,在弹出窗口中输入“cmd”,点击确定。
⑹ 怎么把多个py用py2exe编译成一个exe文件
一、简介py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。
py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序。py2exe是发布在开源许可证下的。
二、安装py2ex ownloads.sourceforge.net/py2exe下载并运行与你所安装的Python对应的py2exe版本的installer,这将安装py2exe和相应的例子;这些例子被安装在lib\site-packages\py2exe\samples目录下。
三、py2exe的用法如果你有一个名为helloworld.py的python脚本,你想把它转换为运行在windows上的可执行程序,并运行在没有安装python的windows系统上,那么首先你应写一个用于发布程序的设置脚本例如mysetup.py,在其中的setup函数前插入语句import py2exe 。
mysetup.py示例如下:
[python] view plain print?
#mysetup.py
from distutils.core import setup
import py2exe
setup(console=["helloworld.py"])
然后按下面的方法运行mysetup.py:
[python] view plain print?
python mysetup.py py2exe
上面的命令执行后将产生一个名为dist的子目录,其中包含了helloworld.exe,python24.dll,library.zip这些文件。
如果你的helloworld.py脚本中用了已编译的C扩展模块,那么这些模块也会被拷贝在个子目录中,同样,所有的dll文件在运行时都是需要的,除了系统的dll文件。
dist子目录中的文件包含了你的程序所必须的东西,你应将这个子目录中的所有内容一起发布。
默认情况下,py2exe在目录dist下创建
以下这些必须的文件:
1、一个或多个exe文件。
2、python##.dll。
3、几个.pyd文件,它们是已编译的扩展名,它们是exe文件所需要的;加上其它的.dll文件,这些.dll是.pyd所需要的。
4、一个library.zip文件,它包含了已编译的纯的python模块如.pyc或.pyo
上面的mysetup.py创建了一个控制台的helloword.exe程序,如果你要创建一个图形用户界的程序,那么你只需要将mysetup.py中的console=["helloworld.py"]替换为windows=["myscript.py"]既可。
⑺ 将python生成的 py文件转为 exe文件的原理是怎样的
以py2exe为例,它是将所需的py编译为pyc并打包;若需要其他的数据文件比如DLL或PIC等类型的文件,可以使用参数将它加入到相应目录;它会将所需的python运行环境拷入目标目录所以不用担心在未安装python的系统中的安装问题。
做好的EXE文件,或相应的文件夹有可能达到30MB以上,其实就是将所需的库都给拷过去了。
那里的exe文件其实只是一个通用的启动器,运行主体是存在于压缩包内的pyc文件。
⑻ python可视化编程、打包exe(pycharm)
python3安装指令: pip install PyQt5
python2安装指令: pip install python-qt5
添加扩展插件:File-->setting-->Tools-->External Tools,如下图:
网上教程有很多,有不一样的,但是宗旨都是用把 .ui 文件用指令编译成 .py 文件。不一样的无非就是路径的写法,指令的写法不同。
比如方法二:
不熟悉python的坑:
这个命令是把资源文件.qrc转换为.py文件。命令:pyrcc5 -o xxx.qrc xxx.py
Arguments这边我就不误导大家了,详细的可以网上自行搜索pyinstaller。这里简单说下我这里面的意思,因为我的工程入口文件是Main.py。-F(大写)就是打包成可执行文件exe -w 程序运行时不显示命令行窗口 -i 是给你的可执行程序加个图标。 tool.icon是我工程这个图标的资源名。这个资源位置和入口文件同级别。
在打包过程中可能遇到的 坑 ,但愿你们没遇到:
⑼ Windows下怎么把python脚本编译成exe
我的是这个文件 py2exe-0.6.9.win32-py2.6.exe 你自己找,找到对应你python的版本安装。安装之后打开解释器输入>>> import py2exe
>>> import distutils如果没有问题就可以了。现在说步骤:1、准备你要编译的python脚本,比如:a.py,放在C:\compile\a.py2、编写另一个python脚本setup.py,内容如下:import distutils
import py2exe
distutils.core.setup(windows=[‘C:\\compile\\a.py’])3、把你的setup.py放在某个位置,比如C:\compile\setup.py打开命令行输入 C:\compile\setup.py py2exe 编译生成4、然后会在C:\Users\你的用户名\ 下生成一个dist的文件, 里面有个a.exe,双击就会执行你的脚本。
⑽ 如何使用pyinstaller将py文件生成exe文件
生成单一的exe文件:pyinstaller.py-F..\BlogsToWordpress\BlogsToWordpress.py主要选项包括:-F,–onefile打包成一个exe文件。-D,–onedir创建一个目录,包含exe文件,但会依赖很多文件(默认选项)。-c,–console,–nowindowed使用控制台,无界面(默认)-w,–windowed,–noconsole使用窗口,无控制台生成单一的exe不显示黑框:pyinstaller.py-F-w..\BlogsToWordpress\BlogsToWordpress.py