> 平时用Python语言写个小脚本、小爬虫什么的,想要在朋友面前秀秀。但是朋友没有Python环境。
>
> 总不可能为了运行个小脚本就叫别把Python 环境安装上吧。 而且也要为python程序配一个图形界面,毕竟控制台实在太丑陋了。
而Python的图形库,不是下载安装繁琐,就是界面丑陋或者难写难用,文档不齐全。 而且还要花费大量时间学习才能掌握使用。
下面我就介绍一种**极其简单**的方法,给python脚本添加一个图形界面并打包发布。
### **Python + Aardio**
### 1. [aardio](http://bbs.aardio.com/)
aardios是一个小、轻、快,轻便利索,体积仅5.9MB,的桌面应用开发工具(语言)。支持可视化的设计界面
![拖拽设计界面](assets/89862179.jpg)
aardio是一个绿色软件,[下载](http://www.aardio.com/) 解压,即可使用。用他打包的程序也是绿色免安装的。
解压之后双击运行aardio.exe 新建一个项目,并拖拽 完成界面的设计。
### 2 Python 程序
这里是非常简单的一个温度转换的程序
```python
// 摄氏度 华氏度 相互转换函数
def tempcv(inStr):
// 是C结尾的就认为是摄氏度
if inStr[-1] in ["C","c"]:
f=1.8*float(inStr[0:-1])+32
return f
// 是F 结尾的就认为是华氏度
elif inStr[-1] in ["F","f"]:
c=(float(inStr[0:-1])-32)/1.8
return c
else :
return false
if __name__ == '__main__':
inTemp = input("Please enter a temperature value with a temperature symbol(eg:32c/75F)")
res = tempcv(inTemp)
print(res)
```
将Python程序放到哦 aardio工程下的res文件夹下(放到这里的资源,打包后都将被打包进可执行文件里)
![](assets/1035141.jpg)
然后回到aardio程序打开代码视图(Ctrl+u)
![拖拽设计界面](assets/89862179-1537865809043.jpg)
将双击`开始转换`按钮,绑定单击事件
```javascript
import py
mainForm.button.oncommand = function(id,event){
pyCode = string.load("\res\TempConv.py");
py.exec(pyCode);
// 获取输入
var inStr = mainForm.inEdit.text
// 执行Python脚本
var res = py.main.tempcv(inStr);
// 拼接输出
outStr = "您输入的是:" + inStr + '\n';
outStr += "转换结果是:" ++ res.toNumber();
// 结果展示
mainForm.outEdit.text = outStr;
}
```
最后是运行效果:
![](assets/39755305.jpg)
点击 `发布(F7)`按钮,生成绿色软件
![](assets/40862807.jpg)
因为lib文件夹下带了一个Python解释器,所以发布的程序大小为12.6M
------
main.aardio 完整代码:
```js
import win.ui;
import console;
import py;
/*DSG{{*/
mainForm = win.form(text="aardio form";right=399;bottom=299)
mainForm.add(
button={cls="button";text="开始转换";left=248;top=88;right=360;bottom=136;font=LOGFONT(h=-16);z=2};
inEdit={cls="edit";left=24;top=88;right=208;bottom=144;edge=1;font=LOGFONT(h=-21);multiline=1;z=1};
outEdit={cls="richedit";left=24;top=200;right=368;bottom=272;edge=1;font=LOGFONT(h=-19);multiline=1;readonly=1;z=4};
static2={cls="static";text="请输入带有温度表示符号
的温度值(例如:32c/75F)";left=24;top=32;right=264;bottom=80;font=LOGFONT(h=-19);transparent=1;z=3};
static3={cls="static";text="结果展示";left=24;top=168;right=136;bottom=192;font=LOGFONT(h=-21);transparent=1;z=5}
)
/*}}*/
mainForm.button.oncommand = function(id,event){
pyCode = string.load("\res\TempConv.py");
py.exec(pyCode);
// 获取输入
var inStr = mainForm.inEdit.text
// 执行Python脚本
var res = py.main.tempcv(inStr);
// 拼接输出
outStr = "您输入的是:" + inStr + '\n';
outStr += "转换结果是:" ++ res.toNumber();
// 结果展示
mainForm.outEdit.text = outStr;
}
mainForm.enableDpiScaling();
mainForm.show();
return win.loopMessage();
```
**整个工程文件 [下载](https://share.weiyun.com/5eCC8Vm)**
一键复制
编辑
Web IDE
原始数据
按行查看
历史