将Python文件编译为exe可执行程序_python exe,Python面试题高级

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
img

正文

选项说明
-h,–help查看该模块的帮助信息
-F,-onefile产生单个的可执行文件
-D,–onedir产生一个目录(包含多个文件)作为可执行程序
-a,–ascii不包含Unicode字符集支持。不包含编码,在支持unicode的Python版本上默认包含所有的编码
-d,–debug产生debug版本的可执行文件
-w,–windowed,–noconsolc指定程序运行时不显示命令行窗口(仅对Windows有效)
-c,–nowindowed,–console指定使用命令行窗口运行程序(仅对Windows有效),默认
-i,–icon=<file.ioc>将file.ico添加为可执行文件的资源,改变程序的图标(只对Windows系统有效)
-o DIR,–out=DIR指定spec文件的生成目录。如果没有指定,则默认使用当前目录来生成spec文件
-p DIR,–path=DIR设置Python导入模块的路径(和设置PYTHONPATH环境变量的作用相似)。也可使用路径分隔符(Windows使用分号,Linux 使用冒号)来分隔多个路径
-n NAME,–name=NAME指定项目(产生的spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为spec的名字
-icon=<file.exe,n>将file.exe的第n个图标添加为可执行文件的资源(只对Windows系统有效)
-v file,–version=file将verfile作为可执行文件的版本资源(只对Windows系统有效)
-s,–strip可执行文件和共享库将run through strip。注意Cygwin的strip往往使普通的win32 Dll无法使用
-X,–upx如果有UPX安装(执行Configure.py时检测),会压缩执行文件(Windows系统中的DLL也会)(参见note)

在表1中列出的只是PyInstaller模块所支持的常用选项,如果需要了解PyInstaller选项的详细信息,则可通过pyinstaller -h来查看。

三、设置打包后的版本信息

编辑“版本信息文件”,此文件为纯文本文件,可用.txt扩展名,文件名可随意,如“file_version_info.txt”。典型的版本信息文件内容如下,中文注释是作者为方便读者学习而加的,注意红框中的项目。

说明:

1.有关固定文件信息“ffi”的更多详细信息,请参阅:# http://msdn.microsoft.com/en-us/library/ms646997.aspx

2. Translation中的语言代码,Locale ID信息见表2。

四、编译.py文件为.exe可执行文件

1**、无版本配置文件**

下面以“漂亮玫瑰.py”为例,代码见:Python绘图——漂亮的玫瑰(源代码)")

创建一个文件夹(目录),将“漂亮玫瑰.py”复制到该文件夹,win+R,输入cmd进入命令行窗口,通过cd命令进入刚才创建的文件夹(目录),在该目录下执行如下命令:

pyinstaller -F 漂亮玫瑰.py

上面命令中的“-F”选项指定生成单个的可执行程序。运行上面命令,在当前目录下生成了一个build、dist二个子目录,并在dist子目录下生成了一个“漂亮玫瑰.exe”文件。

直接双击运行“漂亮玫瑰.exe”程序就会绘制“漂亮玫瑰”,读者可自行查看运行结果。

在“漂亮玫瑰.exe”上单击右键,选“属性”,选“详细信息”页,信息显示如图1所示。

图1 直接编译后有exe文件无版本信息

2**、有版本配置文件**

编辑“版本信息文件”,文件名随意,但需是文件文件,如“myVerInfo.txt”,内容如下:

VSVersionInfo(
  ffi=FixedFileInfo(
    filevers=(1, 0, 0, 23),
    prodvers=(1, 0, 0, 1),
    mask=0x3f,
    flags=0x0,
    OS=0x4,
    fileType=0x1,
    subtype=0x0,
    date=(0, 0)
    ),
  kids=[
    StringFileInfo(
      [
      StringTable(
        '080403a8',
        [StringStruct('CompanyName', '张瑞林'),
        StringStruct('FileDescription', '绘制漂亮玫瑰'),
        StringStruct('FileVersion', '1.001'),
        StringStruct('InternalName', '漂亮玫瑰.exe'),
        StringStruct('LegalCopyright', '张瑞林版权所有'),
        StringStruct('OriginalFilename', '漂亮玫瑰.py'),
        StringStruct('ProductName', 'Python图形绘制系列—玫瑰花'),
        StringStruct('ProductVersion', '1.005')])
      ]),
    VarFileInfo([VarStruct('Translation', [2052, 936])])
  ]
)

在该目录下执行如下命令:

pyinstaller -F --version-file=myVerInfo.txt 漂亮玫瑰.py

执行过程如图2。

图2 执行pyinstaller -F --version-file=myVerInfo.txt 漂亮玫瑰.py

此时会多一个“漂亮玫瑰.spec”文件,见图3。

图3 执行pyinstaller -F --version-file=myVerInfo.txt 漂亮玫瑰.py后的文件夹

“漂亮玫瑰.spec”中有一行“version=‘myVerInfo.txt’”,“漂亮玫瑰.spec”完整内容如下所示,注意红框内容。

如果修改了.py文件“漂亮玫瑰.py”,再次编译只需用“pyinstaller -F 漂亮玫瑰.py”,如修改了版本信息文件“myVerInfo.txt”,则要删除.spec文件和build、dist二个子目录,重新用“pyinstaller -F --version-file=myVerInfo.txt 漂亮玫瑰.py”进行编译,否则可能得不到正确的版本信息。

进入dist子目录,在“漂亮玫瑰.exe”上单击右键,选“属性”,选“详细信息”页,信息显示如图4所示。

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
研究,那么很难做到真正的技术提升。**

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-Yj4PaR6L-1713247839192)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值