• 如何用 aardio 和 Python 打造工整零丁EXE标准?

  • 发布日期:2024-12-03 16:24    点击次数:168

    如何用 aardio 和 Python 打造工整零丁EXE标准?

    鸠合上大师共享的 aardio + Python 混杂开拓的著作好多,不得不说 aardio 与 Python 混杂开拓是确实浅薄 !

    快速初学

    在 aardio 中可径直创建 Python 工程:

    aardio 可视化开拓图形界面特等便捷,相干的教程、开源技俩皆好多,这里就未几说了。

    至于 aardio + Python 互调也特等浅薄,示例:

    import console; import py3; //导入 Python 模块。 var itertools = py3.import("itertools") //调用 Python 函数,复旧纯 aardio 类型参数 var permutations = itertools.permutations({"a","b","c"}); //调用 Python 内置函数 list var pyList = py3.list(permutations); //遍历 Python 对象成员 for( item in pyList.each() ){ //像 aardio 对象雷同使用 Python 对象 console.log(item); } console.pause();

    aardio 自带的 Python 表率也特等多,请翻开「 aardio 表率 > 调用其他讲话 > Python 」 检察。

    一键成零丁 EXE 文献

    纯 aardio 标准不错便捷地生成零丁 EXE 文献,不需要虚构化,不需要开释临时文献 —— 这是因为 aardio 自带的文献函数皆自动兼容了 EXE 内嵌资源旅途。 即使用到了一些第三方的 DLL 组件一般也不错自内存加载,即使是 .NET 标准集也不错便捷地自内存加载。

    然而 Python 弗成这么搞,aardio + Python www.bfgr5.cn生成的软件就必须带上 Python 发挥器,*.py 文献一般亦然放在硬盘上。

    底下是我用 aardio + Python 表率工程生成 EXE 取得的文献:

    上头的 PyApp.exe 需要带上 /lib/ , /py/ 这几个目次才能起原。虽然,这里面还是自带了绿色的 Python 起原时,用户电脑不再需要装配 Python 。

    然而好多用户可爱小轻快的零丁 EXE 文献。我时常被问到这个问题,如何将 aardio + Python 开拓的软件转机为零丁 EXE。

    其实用免费的虚构化封包器具( 不需要格外开释临时文献 ) Enigma Virtual Box www.huanbaocl.com.cn就不错将上头的几个文献转机为零丁 EXE 文献。我基于 Enigma Virtual Box 写了一个推广库 process.vb ,不错一键完成扫数操作。

    新版 aardio 生成 EXE 后多了一个「转机为零丁 EXE」按钮。

    点击「转机为零丁 EXE」以青年景了新的 PyApp.exe 。然后咱们不错删掉其他的 /lib/, /py/ 目次,因为 PyApp.exe 不再需要这些目次了(还是封包到 PyApp.exe 里面了)。

    包含了 Python 起原时的 PyApp.exe 体积为 19MB,打个压缩包其实独一 7 MB,这个体积比较 Electron 什么的算口角常小了。

    process.vb 推广库

    Enigma Virtual Box 的主标准并莫得提供编程接口,也不复旧高歌行参数。但提供了一个高歌行器具 enigmavbconsole,不错传入 Enigma www.hkdrama.cn Virtual Box 生成的工程文献(*.evb)旅途并生成零丁 EXE 文献。

    而 evb 工程文献本体上是一个 XML 文献。

    Enigma Virtual Box 界面上要是拖入包含汉文的旅途,生成的 evb 会出现乱码。但本体上 evb 复旧 Unicode / UTF-8 编码,要是咱们用标准生成 evb 文献,并存为 UTF-8 编码,enigmavbconsole www.hubeisai.cn是不错通俗科罚的。 但要是在 Enigma Virtual Box 界面上再次翻开这个 evb 文献,界面上又乱码了。

    这个 evb 的内容其实也有些复杂,但好在www.3g210.cn aardio 写标准速率快,要不了几句代码这个 process.evb 推广库就写好了。

    来个浅薄的调用例子:

    import console; import process.evb.project; import ide; //创建封包工程 var evbProject = process.evb.project() //竖立启动 EXE evbProject.main = ide.getPublishPath(); //竖立要生成的零丁 EXE evbProject.output = io.tmpname(,".dat"); //添加发布目次下的扫数文献 evbProject.addSubFile(ide.getPublisDir()); //生成工程 evbProject.generate("/app.evb"); //生成零丁 EXE import process.evb; var evb = process.evb("/app.evb") evb.logResponse(); //计帐临时文献 io.remove("/app.evb"); fsys.move(evbProject.output,ide.getPublishPath());

    既然皆玩到这个份上来,再唾手拖个界面吧:

    evbexe文献EnigmaPython发布于:广东省声明:该文不雅点仅代表作家本东说念主,搜狐号系信息发布平台,搜狐仅提供信息存储空间职业。