百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

aardio 安装 Python 模块,快速开发界面,生成独立 EXE 一把梭

liuian 2024-12-10 18:06 67 浏览

aardio 开发图形界面利索,与 Python 交互也方便。

aardio + Python 开发的程序可以一键生成独立 EXE 文件,自带绿色 Python 运行时,生成的 EXE 也不大。

但是 aardio 自带的 Python 是绿色版,添加第三方模块需要手动安装 —— 比较麻烦。今天花了点时间研究了一下,在 aardio 中引入了 pip 安装工具,这就舒服了 !

在 Python 工程内运行 pip 安装 Python 模块

首先请更新 aardio 与 py3 扩展库,然后如下图创建 py3 工程:


创建工程以后,在工程管理器双击「安装模块 > pip」

打开 pip.aardio 指定模块名称,然后点击「运行」按钮:

pip 就会自动安装好模块了,操作就这么简单。

py3.pip 默认会将 Python 模块安装到工程中的 "/py/site-packages" 目录下。发布时仅打包当前工程的 Python 模块,生成 EXE 的体积就会更小。

创建空白 aardio 文件调用 py3.pip 安装 Python 模块

也可以点 aardio 左上角『新建控制台』按钮新建一个代码文件。

输入以下代码调用 py3.pip 。

import py3.pip;

//切换国内镜像源
py3.pip.setIndexUrl("aliyun")

//安装 Python 模块
py3.pip("install","jsonrpclib")

点『运行』按钮。

没有保存到文件的 aardio 代码,应用程序根目录( "/" )也指向当前工程目录,所以运行上面的代码也会将模块安装到当前工程。

上述操作过程动画演示:

使用 py3.pip 时切换 Python 版本

如果使用 py3.10 扩展库,则引用库需要改为 py3.10.pip ,例如:

import py3.10.pip;
 
/*
用的时候仍然要用 py3.pip,不能写 py3.10.pip,这是违反 aardio 语。
*/
py3.pip("install","jsonrpclib");

同一个 aardio 工程应当只使用一个 Python 版本。用 Python 要记住不同版本有些东西是不兼容的,例如我写的 py3.pip 与 py3.10.pip 的实现都是不同的。

说实话用 aardio 是真幸福,例如现在 aardio 版本是 v35,用 v34 的用户都很罕见。

使用 py3.pip 切换镜像源

切换镜像源示例:

import py3.pip;

//切换国内镜像源
py3.pip.setIndexUrl("aliyun")

参数可以直接写源地址,也可以改为缩写,有哪些缩写请参考该函数说明。或右键点该函数名,然后点跳转到定义。

Python 代码放入 /py 目录

在 aardio 中Python 代码或者模块 —— 应当总是放在 /py 目录下。

Python 扩展库默认就会在 /py 目录下搜索 Python 模块。而且发布工具也自动支持 /py 目录(即使没有添加 /py 到工程中,只要工程中有这个目录,aardio 都可以自动识别 )。

请注意看下图 Python 程序转独立 EXE 工具,就会默认选中 /py 目录:

使用 plus 控件制作精美界面

aardio 中的 plus 控件做界面很方便,也很简单。

plus 控件可支持 各种字体图标,jpg 图像,透明 gif 图像,透明动画,半透明 png 图像,并可设定多种不同的绘图模式、九宫格贴图等等,使用 plus 控件可以简单地通过在窗体设计器中拖拉创建各种漂亮的控件效果、可创建静态图片框、动画播放控件、按钮、透明按钮、不规则按钮、复选框、超链接、进度条、扇形进度条、滑块跟踪条、选项卡、弹出菜单、下拉框...... plus 控件还提供了非常多的灵活的可调整参数,如果您擅于发挥可以做出更多的控件效果。

plus 控件是用纯 aardio 代码实现的,体积很小,所以生成的 EXE 也很小。

下面简单介绍一下 plus 控件的用法。

1、拖一个 plus 控件到界面上,选中 plus 控件。

2、鼠标双击并打开 aardio 工具 / plus 控件配色工具。

3、配置好颜色样式,或者点击预设的范例样式,

然后点击「导出到窗体设计器选中控件」就可以了。

更多教程请查看 aardio 开始页的《 系列教程:使用 plus 控件制作精美界面 》。

Python 程序转为独立 EXE 文件

在 aardio 中将 Python 程序转为独立 EXE 只要点下图的按钮就可以了:

不得不说 Python 生成的独立 EXE 体积是真小,只有十几 MB,打个压缩包也就几 MB。相比动不动就上百 MB 的 Electron ,算是很小了。

aardio 与 Python 相互调用

刚刚还有人问我一个问题,aardio 怎么获取 Python 的值。

其实 aardio 与 Python 相互调用非常方便,建议看一下范例,代码都非常简单,要不了几分钟:


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() ){
  console.log(item); //像 aardio 对象一样使用 Python 对象
}

console.pause();

aardio 调用 Python 代码示例:

import py3; 

var pyCode = /**
def sign_request():
    from hashlib import sha1
    import hmac
    import binascii
    
    key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
    hashed = hmac.new(key.encode("gbk"), 'test'.encode("UTF-8"), sha1)
    return binascii.b2a_base64(hashed.digest())[:-1].decode("UTF-8")
**/

//执行Python3 的代码
py3.exec( pyCode ) 

//调用 Python __main__ 模块函数
var pyObject = py3.main.sign_request();

import console; 
console.log(  pyObject  )
console.pause()

有用户说 Python 代码中多按一个空格就会出错,要 aardio 修复这个 "bug"。其实 Python 中的空格缩进是语法元素,要求非常严格。不能随意按空格。

aardio 支持混编十几种编程语言,例如 C语言、C++、C#、Java、Python、R、JavaScript、Node.Js、Fortran、VB、Flash ActionScript、PHP、VBScript、PowerShell、NewLISP、AutoLISP、Delphi、FreeBASIC、Ruby、Rust、Julia、Nim、Go 语言、批处理 ......等等非常多。

但使用任何一种语言,基础语法都需要先了解一下。

aardio 中使用其他编程语言只是可选项

这里需要说明一下,在 aardio 中使用其他编程语言只是可选项。

实际上大多数 aardio 程序都是纯 aardio 代码开发的,aardio 中的标准库也基本都是纯 aardio 代码实现。

即使是 win.ui 界面库也是纯 aardio 代码实现的。

而且 aardio 也不存在翻译其他编程语言这种功能,aardio 是 aardio ,其他语言是其他语言。

例如 aardio 里的 Python 就是原来的 Python ,aardio 只是用 Python 提供的接口去调用执行 Python 而已。

相关推荐

Optional是个好东西,如果用错了就太可惜了

原文出处:https://xie.infoq.cn/article/e3d1f0f4f095397c44812a5be我们都知道,在Java8新增了一个类-Optional,主要是用来解决程...

IDEA建议:不要在字段上使用@Autowire了!

在使用IDEA写Spring相关的项目的时候,在字段上使用@Autowired注解时,总是会有一个波浪线提示:Fieldinjectionisnotrecommended.纳尼?我天天用,咋...

Spring源码|Spring实例Bean的方法

Spring实例Bean的方法,在AbstractAutowireCapableBeanFactory中的protectedBeanWrappercreateBeanInstance(String...

Spring技巧:深入研究Java 14和SpringBoot

在本期文章中,我们将介绍Java14中的新特性及其在构建基于SpringBoot的应用程序中的应用。开始,我们需要使用Java的最新版本,也是最棒的版本,Java14,它现在还没有发布。预计将于2...

Java开发200+个学习知识路线-史上最全(框架篇)

1.Spring框架深入SpringIOC容器:BeanFactory与ApplicationContextBean生命周期:实例化、属性填充、初始化、销毁依赖注入方式:构造器注入、Setter注...

年末将至,Java 开发者必须了解的 15 个Java 顶级开源项目

专注于Java领域优质技术,欢迎关注作者:SnailClimbStar的数量统计于2019-12-29。1.JavaGuideGuide哥大三开始维护的,目前算是纯Java类型项目中Sta...

字节跨平台框架 Lynx 开源:一个 Web 开发者的原生体验

最近各大厂都在开源自己的跨平台框架,前脚腾讯刚宣布计划四月开源基于Kotlin的跨平台框架「Kuikly」,后脚字节跳动旧开源了他们的跨平台框架「Lynx」,如果说Kuikly是一个面向...

我要狠狠的反驳“公司禁止使用Lombok”的观点

经常在其它各个地方在说公司禁止使用Lombok,我一直不明白为什么不让用,今天看到一篇文章列举了一下“缺点”,这里我只想狠狠地反驳,看到列举的理由我竟无言以对。原文如下:下面,结合我自己使用Lomb...

SpringBoot Lombok使用详解:从入门到精通(注解最全)

一、Lombok概述与基础使用1.1Lombok是什么Lombok是一个Java库,它通过注解的方式自动生成Java代码(如getter、setter、toString等),从而减少样板代码的编写,...

Java 8之后的那些新特性(六):记录类 Record Class

Java是一门面向对象的语言,而对于面向对象的语言中,一个众所周知的概念就是,对象是包含属性与行为的。比如HR系统中都会有雇员的概念,那雇员会有姓名,ID身份,性别等,这些我们称之为属性;而雇员同时肯...

为什么大厂要求安卓开发者掌握Kotlin和Jetpack?优雅草卓伊凡

为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡一、Kotlin:Android开发的现代语言选择1.1Kotlin是什么?Kotlin是由...

Kotlin这5招太绝了!码农秒变优雅艺术家!

Kotlin因其简洁性、空安全性和与Java的无缝互操作性而备受喜爱。虽然许多开发者熟悉协程、扩展函数和数据类等特性,但还有一些鲜为人知的特性可以让你的代码从仅仅能用变得真正优雅且异常简洁。让我们来看...

自行部署一款免费高颜值的IT资产管理系统-咖啡壶chemex

在运维时,ICT资产太多怎么办,还是用excel表格来管理?效率太低,也不好多人使用。在几个IT资产管理系统中选择比较中,最终在Snipe-IT和chemex间选择了chemex咖啡壶。Snip...

PHP对接百度语音识别技术(php对接百度语音识别技术实验报告)

引言在目前的各种应用场景中,语音识别技术已经越来越常用,并且其应用场景正在不断扩大。百度提供的语音识别服务允许用户通过简单的接口调用,将语音内容转换为文本。本文将通过PHP语言集成百度的语音识别服务,...

知识付费系统功能全解析(知识付费项目怎么样)

开发知识付费系统需包含核心功能模块,确保内容变现、用户体验及运营管理需求。以下是完整功能架构:一、用户端功能注册登录:手机号/邮箱注册,第三方登录(微信、QQ)内容浏览:分类展示课程、文章、音频等付费...