aardio 安装 Python 模块,快速开发界面,生成独立 EXE 一把梭
liuian 2024-12-10 18:06 75 浏览
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 而已。
相关推荐
- python入门到脱坑函数—定义函数_如何定义函数python
-
Python函数定义:从入门到精通一、函数的基本概念函数是组织好的、可重复使用的代码块,用于执行特定任务。在Python中,函数可以提高代码的模块性和重复利用率。二、定义函数的基本语法def函数名(...
- javascript函数的call、apply和bind的原理及作用详解
-
javascript函数的call、apply和bind本质是用来实现继承的,专业点说法就是改变函数体内部this的指向,当一个对象没有某个功能时,就可以用这3个来从有相关功能的对象里借用过来...
- JS中 call()、apply()、bind() 的用法
-
其实是一个很简单的东西,认真看十分钟就从一脸懵B到完全理解!先看明白下面:例1obj.objAge;//17obj.myFun()//小张年龄undefined例2shows(...
- Pandas每日函数学习之apply函数_apply函数python
-
apply函数是Pandas中的一个非常强大的工具,它允许你对DataFrame或Series中的数据应用一个函数,可以是自定义的函数,也可以是内置的函数。apply可以作用于DataF...
- Win10搜索不习惯 换个设定就好了_window10搜索用不了怎么办
-
Windows10的搜索功能是真的方便,这点用惯了Windows10的小伙伴应该都知道,不过它有个小问题,就是Windows10虽然会自动联网搜索,但默认使用微软自家的Bing搜索引擎和Edge...
- 面试秘籍:call、bind、apply的区别,面试官为什么总爱问这三位?
-
引言你有没有发现,每次JavaScript面试,面试官总爱问你call、bind和apply的区别?好像这三个方法成了通关密码,掌握了它们,就能顺利过关。其实不难理解,面试官问这些问题,不...
- 记住这8招,帮你掌握“追拍“摄影技法—摄影早自习第422日
-
杨海英同学提问:请问叶梓老师,我练习追拍时,总也不能把运动的人物拍清晰,速度一般掌握在1/40-1/60,请问您如何把追拍拍的清晰?这跟不同的运动形式有关系吗?请您给讲讲要点,谢谢您!摄影:Damia...
- [Sony] 有点残酷的测试A7RII PK FS7
-
都是好机!手中利器!主要是最近天天研究fs5,想知道fs5与a7rii后期匹配问题,苦等朋友的fs5月底到货,于是先拿手里现有的fs7小测一下,十九八九也能看到fs5的影子,另外也了解一下fs5k标配...
- AndroidStudio_Android使用OkHttp发起Http请求
-
这个okHttp的使用,其实网络上有很多的案例的,但是,如果以前没用过,copy别人的直接用的话,可以发现要么导包导不进来,要么,人家给的代码也不完整,这里自己整理一下.1.引入OkHttp的jar...
- ESL-通过事件控制FreeSWITCH_es事务控制
-
通过事件提供的最底层控制机制,允许我们有效地利用工具箱,适时选择使用其中的单个工具。FreeSWITCH是一个核心交换与混合矩阵,它周围有几十个模块提供各种功能特性。我们完全控制了所有的即时信息,这些...
- 【调试】perf和火焰图_perf生成火焰图
-
简介perf是linux上的性能分析工具,perf可以对event进行统计得到event的发生次数,或者对event进行采样,得到每次event发生时的相关数据(cpu、进程id、运行栈等),利用这些...
- 文本检索控件也玩安卓?dtSearch Engine发布Android测试版
-
dtSearchEngineforLinux(原生64-bit/32-bitC++和JavaAPIs)和dtSearchEngineforWin&.NET(原生64-bi...
- 网站后台莫名增加N个管理员,记一次SQL注入攻击
-
网站没流量,但却经常被SQL注入光顾。最近,网站真的很奇怪,网站后台不光莫名多了很多“管理员”,所有的Wordpres插件还会被自动暂停,导致一些插件支持的页面,如WooCommerce无法正常访问、...
- 多元回归树分析Multivariate Regression Trees,MRT
-
多元回归树(MultivariateRegressionTrees,MRT)是单元回归树的拓展,是一种对一系列连续型变量递归划分成多个类群的聚类方法,是在决策树(decision-trees)基础...
- JMETER性能测试_JMETER性能测试指标
-
jmeter为性能测试提供了一下特色:jmeter可以对测试静态资源(例如js、html等)以及动态资源(例如php、jsp、ajax等等)进行性能测试jmeter可以挖掘出系统最大能处...
- 一周热门
-
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
Python实现人事自动打卡,再也不会被批评
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
飞牛OS入门安装遇到问题,如何解决?
-
系统C盘清理:微信PC端文件清理,扩大C盘可用空间步骤
-
10款高性能NAS丨双十一必看,轻松搞定虚拟机、Docker、软路由
-
- 最近发表
-
- python入门到脱坑函数—定义函数_如何定义函数python
- javascript函数的call、apply和bind的原理及作用详解
- JS中 call()、apply()、bind() 的用法
- Pandas每日函数学习之apply函数_apply函数python
- Win10搜索不习惯 换个设定就好了_window10搜索用不了怎么办
- 面试秘籍:call、bind、apply的区别,面试官为什么总爱问这三位?
- 记住这8招,帮你掌握“追拍“摄影技法—摄影早自习第422日
- [Sony] 有点残酷的测试A7RII PK FS7
- AndroidStudio_Android使用OkHttp发起Http请求
- ESL-通过事件控制FreeSWITCH_es事务控制
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)