使用BeeWare实现iOS调用Python方式
1、准备工作
1.1、安装Python
1.2、设置虚拟环境
我们现在将创建一个虚拟环境——一个“沙盒”,如果我们将软件包安装到虚拟环境中,我们计算机上的任何其他Python项目将不会受到影响。
如果我们把虚拟环境搞得一团糟,我们将能够简单地删除它并重新开始,而不会影响我们计算机上的任何其他Python项目,也无需重新安装Python。
mkdir beeware-tutorial cd beeware-tutorial python3 -m venv beeware-venv source beeware-venv/bin/activate
如果生效,终端提示符应该被更改,它应该有一个(beeware-venv)前缀。表明目前处于BeeWare虚拟环境中。
如果不是,请重新运行最后一个命令(activate命令)以重新激活虚拟环境。
2、创建BeeWare应用程序
2.1、安装BeeWare工具
BeeWare可用于打包应用程序以分发给最终用户,但它也可用于引导新项目。
确保你处于beeware-venv虚拟环境,然后运行:
python -m pip install briefcase
2.2、引导一个新项目
我们将使用以下命令创建一个名为Hello World的应用程序:
briefcase new
BeeWare将要求我们提供新应用程序的一些细节:
- Formal Name - 接受默认值: Hello World.
- App Name - 接受默认值:helloworld。
- Bundle - 如果您拥有自己的域名,请按相反顺序输入该域名。(例如,如果您拥有“cupcakes.com”域名,请输入com.cupcakes作为包名)。如果您没有自己的域名,请接受默认包名(com.example)。
- Project Name - 接受默认值: Hello World.
- Description - 描述信息,接受默认值
- Author - 输入您自己的姓名。
- Author’s email - 输入您自己的电子邮件地址。这将在配置文件、帮助文本以及将应用程序提交到应用程序商店时需要电子邮件的任何地方中使用。
- URL - 您应用程序的登录页面的URL。同样,如果您拥有自己的域名,请在该域名(包括https://)输入URL。否则,只需接受默认URL(https://example.com/helloworld)。此URL不需要实际存在(目前);只有当您将应用程序发布到应用程序商店时,它才会被使用。
- License - 接受默认许可证:BSD。这不会影响项目运行。
- GUI framework - 接受默认选项,Toga(BeeWare自己的GUI工具包)。
BeeWare将生成一个项目架构:
beeware-tutorial/
beeware-venv/
...
helloworld/
CHANGELOG
LICENSE
README.rst
pyproject.toml
src/
helloworld/
resources/
helloworld.icns
helloworld.ico
helloworld.png
__init__.py
__main__.py
app.py
tests/
__init__.py
helloworld.py
test_app.py这个架构实际上是一个功能齐全的应用程序,没有添加任何其他内容。
src目录包含应用程序的所有代码,tests目录包含初始测试用例,pyproject.toml文件描述了如何打包应用程序进行分发,包含刚刚提供给BeeWare的配置详细信息。
2.3、项目架构
在src/helloworld目录中,您应该看到3个文件:__init__.py、__main__.py和app.py。
- __init__.py 将helloworld目录标记为可导入的Python模块。它是一个空文件;它存在的事实告诉Python解释器,helloworld目录定义了一个模块。
- __main__.py 将helloworld模块标记为一个可执行模块类型
- app.py 包含创建应用程序窗口的逻辑
3、部署到iOS
要编译iOS应用程序,我们需要Xcode
3.1、创建iOS应用程序脚手架
briefcase create iOS
完成后,我们将有一个build/helloworld/ios/xcode目录,其中包含Xcode项目,以及应用程序所需的支持库和应用程序代码。
3.2、编译iOS应用程序:
briefcase build iOS
3.3、运行iOS应用程序:
briefcase run iOS
也可以直接用Xcode打开项目进行编译运行。
4、添加第三方依赖库
以requests为例
在app.py添加import requests
此时运行时报错:
ModuleNotFoundError: No module named 'requests'
在app的根目录中有一个名为pyproject.toml的文件。这个文件包含第一次运行 briefcase new命令时提供的所有配置细节
修改requires配置
requires = [
"requests",
]当Briefcase构建app时,会自动运行pip install requests命令把requests包安装到app中。
将修改pyproject.toml后,执行下面命令升级已打包app中的依赖项:
briefcase update iOS
升级完成后,使用briefcase build iOS和 briefcase run iOS命令重新运行
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
详解Python之数据序列化(json、pickle、shelve)
本篇文章主要介绍了Python之数据序列化,本节要介绍的就是Python内置的几个用于进行数据序列化的模块,有兴趣的可以了解一下。2017-03-03
termux中matplotlib无法显示中文问题的解决方法
这篇文章主要介绍了termux中matplotlib无法显示中文问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-01-01
python中sort()和sorted()的区别及用法实例
我们通常会遇到对数据库中的数据进行排序的问题,下面这篇文章主要给大家介绍了关于python中sort()和sorted()的区别及用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下2022-06-06
Python requests请求响应以流stream的方式实现打印输出
在使用requests库时,接收响应并打印内容需注意:若响应内容过大,应设置合理的chunk_size参数以避免内存溢出,当设置了stream=True时,不能使用response.text或response.content属性读取响应内容,否则会抛出异常2025-10-10


最新评论