(哈哈差点打表都不会了)如果你想要跑蜂具,你的系统盘需要
功能 | 累计系统盘所需空间 |
---|---|
python运行 | 300M |
Windows等编译打包 | 500M |
android虚拟机build | 7GB |
android虚拟机run | 8GB |
(链接)蒟蒻独家硬盘清理方式
(正式开始)
1.1 安装一个3.7或以上的python和一个git,然后保证能从系统命令运行他们
(译注:python如果你不想给自己找事最好装3.8,另,你不需要手动检查是否添加到环境变量,如果你安装了而它提示你没安装那就是没添加,你只需要重装一次(python/git)软件就可了)
1.2 创建一个虚拟环境,然后所有组件会被隔离在里面,这样即使你的程序裂开来也不会炸到电脑。这是可选的
(译注:确实可以有保护作用,但是千万不要以为删掉虚拟环境就可完事了)
md beeware-tutorial
cd beeware-tutorial
::你也可以在你想创建的文件夹(最好为空)里Shift+右键,等价于上2
py -m venv beeware-venv
::py是python.exe,前提是你要在环境变量里
beeware-venv\Scripts\activate.bat
::script是自动生成的
(此处应有动图虚拟环境)
首先你要安装briefcase
python -m pip install briefcase
然后接下来全在跟briefcase打交道了
briefcase步骤1
briefcase new
cd helloworld
::或者你自己的appname,无空格
briefcase dev
译注:new命令弹出的选项解释
项 | 干嘛的 | 默认值(直接回车) |
---|---|---|
formal name | 没嘛用 | hello world |
app name | app名称,唯一有点用的 | hello world |
project name | 也没嘛用 | hello world |
bundle | 域名,如果你有 | com.example |
description | 描述,无关紧要 | hello world |
author | 作者 | 怎可能有默认值? |
author’s email | 作者 | 怎可能有默认值? |
url | 你的网址 | https://example.com/helloworld |
License | 许可证,随 | BSD |
GUI framework | 图形用户界面用什么格式 | toga |
然后现在会bling地弹一个窗口出来,关掉继续
现在你已经用掉了300MB系统盘和50MB内存
程序的脚本是helloworld/src/helloworld/app.py
,其他两个看看就好
接下来的话,如果你想试试,你可以把helloworld class替换成下面这坨,但是不要动头尾不属于class的内容
class HelloWorld(toga.App):
def startup(self):
main_box = toga.Box(style=Pack(direction=COLUMN))
name_label = toga.Label(
'Your name: ',
style=Pack(padding=(0, 5))
)
self.name_input = toga.TextInput(style=Pack(flex=1))
name_box = toga.Box(style=Pack(direction=ROW, padding=5))
name_box.add(name_label)
name_box.add(self.name_input)
button = toga.Button(
'Say Hello!',
on_press=self.say_hello,
style=Pack(padding=5)
)
main_box.add(name_box)
main_box.add(button)
self.main_window = toga.MainWindow(title=self.formal_name)
self.main_window.content = main_box
self.main_window.show()
def say_hello(self, widget):
print("Hello", self.name_input.value)
briefcase dev
briefcase run
::因为briefcase是自动运行的所以你可以打briefcase dev或者briefcase run -d
将你的程序变成windows安装包
briefcase create
::会要等一会
briefcase build
briefcase run
::运行你的application,如果你要打包,这一句可以忽略
briefcase package
4.1. 如何在改变了源程序后更新应用文件
briefcase update
briefcase run
::等价于briefcase run -u
briefcase update
briefcase package
::等价于briefcase package -u
选择你的移动载体(我是按照安卓的做下去的了)
使用这三条命令一次完成android构建
briefcase create android
briefcase build android
briefcase run android
(再次链接)蒟蒻独家高效清理硬盘提示
前半部分都是在用肺说话,告诉你用第三方包要先import,诶咋炸了鸭?哦原来系没install哦(。。。)
但是我们不能炸用户的电脑啊,于是我们请briefcase帮 我们先install。打开helloworld/pyproject.toml
,找到requires = []
中括号里加入以下格式的包名一个一行
requires = [
"包名>=版本",
"包名==版本",
"git+https://github.com/encode/httpx"
]
编辑好后运行以下即可
briefcase update -d
让他变得siiiiii滑
用人话来说就是将同步加载换成异步加载(好吧好像也不是人话)
使用python并成功到达这一步的同学很幸运,我在AndroidStudio搞EventLoop搞得晕死
那么python中咋搞嘞
async def say_hello(self, widget):#加入了关键字async
if self.name_input.value:
name = self.name_input.value
else:
name = 'stranger'
async with httpx.AsyncClient() as client:#加入了async with关键字和AsyncClient方法
response = await client.get("https://jsonplaceholder.typicode.com/posts/42")#通过awaitclient获得结果,这样子你可以当response里面已经有结果了,虽然实际运行时里面并没有
payload = response.json()
self.main_window.info_dialog(
"Hello, {}".format(name),
payload["body"],
)
更换你的图标,公布在网上,然后发布(作者说:待更)hhhhhhhg那我也待更好吗
链接其他选项
链接toga控件