00:00
这是一个几乎所有Python学习者都想过的问题,怎样才能把自己刚写好的超级无敌、狂拽酷炫屌炸天的代码发给别人玩玩呢?不同于C加加代码可以直接编译成可执行的exe文件或者GS代码在浏览器中就能执行,Python代码必须通过Python解释器来运行,而这是很多操作系统都没有预装的。因此,想向麻瓜朋友展示你的魔法很简单,先偷偷在他的电脑上安装好Python。如果这招行不通,你还有一个选择,就是通过工具将Python代码打包成可独立执行的exe文件。打包Python代码的工具有很多,你常用的是哪个?请打在评论区或者弹幕里。我在以前的视频中讲过,如何将一个Python游戏打包成exe,用的是py installer, 不过当时有不少人都提到另一个名字notte卡,好好好,今天我就来讲讲如何用newt卡打包Python程序,以及它的一些隐藏功能。Pip install安装完成后就可以通过newt卡加。
01:00
要打包的代码文件名进行打包,不过这样打包好的exe文件仍然无法在没装Python的电脑上运行,我们还得在打包时加上参数stand alone, 这样才会将Python解释器和目标代码的所有依赖都打包进去。参数Onefi则是将所有文件打包成一个单独的可执行文件。打包后的exe程序可以在没有安装Python的同类系统上运行,而且即便是在WIN7下打包的程序拿到WIN10上也能运行。诶,反过来可就不一定哦,你知道为什么吗?下面再来试试之前我写的羊了个羊Python版,看看new卡对于更复杂的GUI程序和第三方库支持的如何。在打包前首先还是要确认你的程序可以正常执行,然后按照刚才的方法打包执行。哦吼,出错了,看报错是缺少一个icon.png的图片,这个问题我们上次就遇到过,是因为p zero要用到一个图标文件,解决办法就是把文件路径加到打包参数里,格式是。
02:00
Data files等于电脑上资源文件的路径,等于程序中的调用路径。如果你找不到PG zero模块中的这个文件,也可以随便找张图片作为替代,只要路径正确就可以。游戏代码中使用到的外部资源还有images文件夹里的图片和music文件夹中的音乐音效,同样也需要导入打包。对于整个文件夹资源的导入,可以使用include data drr参数设定路径的规则跟刚才一样,设定好后再次打包,等待完成之后就可以通过生成的exe文件来运行游戏了。可以看到,我们虽然没有告诉要打包哪些模块,但因为设定了stand alone, 它自动会找到程序依赖的模块打包进去,而且打包后的程序在执行出错时也可以准确的给出错误提示,这一点在使用中非常重要。除此之外,Newsz卡其实还有个隐藏功能给代码加速,比如这样一份带有大量数学计算的代码,我们看一下直接运行的耗时。
03:00
再看一下,用newt卡打包后运行的耗时比之前要少很多。之所以会出现这样的效果,是因为newt卡的原理并不同于其他的打包工具,像cx free py installer都是将Python示器和目标代码及其依赖项打包在一起,生成可执行文件,而notte卡是将Python代码转换成C代码,在通过C编译器编译出机器码并优化。所以更准确来说,Newte卡是将Python代码编译成可执行文件,而不仅仅是字面意义的打包。因此,对于有大量CPU计算的Python代码,New卡打包后会有明显的速度提升。除了打包成可以在Windows系统上运行的exe文件,Notte卡还支持其他平台,比如在苹果电脑上打包成点APP应用程序,这时候就需要加上参数麦克OS create APP帮的,并用麦克OS APP icon指定程序的图标文件。牛T卡提供了很多这样的打包参数,让你更精准。
04:00
控制打包出来的程序效果,用newte卡help命令可以查看所有参数,但这实在也太多了吧,幸好已经有一些大手子做了newte卡的辅助工具,比如这个new卡GUI就可以让你通过可视化的选项,傻瓜式的设定打包参数,将newte卡的使用体验又拉高了一个档次。总结一下,Newia可以将Python程序打包,支持外部资源和第三方库,在各大操作系统上都适用。它的原理是把Python转成C语言在编译,因此执行效率更高。可配置的打包参数很丰富,配置时使用GUI辅助工具会更省事。但还是要提醒,任何Python打包工具都不是万能的,难免会有出错的情况,Newte卡也不例外。如果你的代码总是打包失败,那么不妨换其他工具试一试,或许就能解决好了。今天视频就到这里,我是crossing,想了解更多编程知识,请点赞、评论、转发收藏。下课。
我来说两句