使用BeeWare实现iOS调用Python方式

 更新时间:2023年12月19日 09:09:15   作者:培根芝士  
这篇文章主要介绍了使用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进行视频相似度比较实例

    使用Python进行视频相似度比较实例

    这篇文章主要介绍了使用Python进行视频相似度比较实例,本文通过汉明距离算法与图片比较等方法对比两个视频流的相似度,文中提供了部分实现代码与解决思路,需要的朋友可以参考下
    2023-07-07
  • Python中eval函数的表达式作用示例

    Python中eval函数的表达式作用示例

    这篇文章主要介绍了Python中eval函数的表达式用法示例,文中通过示例对比来为大家进行详细的讲解,有需要的朋友可以借鉴参下,希望有所帮助
    2021-09-09
  • Python经典五人分鱼实例讲解

    Python经典五人分鱼实例讲解

    在本篇文章里小编给大家分享的是一篇关于Python 五人分鱼的经典小游戏实例内容,有兴趣的朋友们可以学习下。
    2021-01-01
  • python 模拟贷款卡号生成规则过程解析

    python 模拟贷款卡号生成规则过程解析

    这篇文章主要介绍了python 模拟贷款卡号生成规则过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python制作英语翻译小工具代码实例

    python制作英语翻译小工具代码实例

    这篇文章主要介绍了python制作英语翻译小工具代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • PyCharm取消波浪线、下划线和中划线的实现

    PyCharm取消波浪线、下划线和中划线的实现

    这篇文章主要介绍了PyCharm取消波浪线、下划线和中划线的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • python将YUV420P文件转PNG图片格式的两种方法

    python将YUV420P文件转PNG图片格式的两种方法

    这篇文章主要介绍了python将YUV420P文件转PNG图片格式的两种方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01
  • flask-socketio实现前后端实时通信的功能的示例

    flask-socketio实现前后端实时通信的功能的示例

    本文主要介绍了flask-socketio实现前后端实时通信的功能的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Python Flask RESTful使用demo演示

    Python Flask RESTful使用demo演示

    这篇文章主要为大家介绍了Python Flask RESTful使用demo演示,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Python绘制惊艳的可视化动图的示例代码

    Python绘制惊艳的可视化动图的示例代码

    今天小编给大家介绍一款可视化模块,使用它可以绘制出十分惊艳的动图效果。文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-04-04

最新评论