使用BeeWare實現(xiàn)iOS調(diào)用Python方式
1、準備工作
1.1、安裝Python
1.2、設置虛擬環(huán)境
我們現(xiàn)在將創(chuàng)建一個虛擬環(huán)境——一個“沙盒”,如果我們將軟件包安裝到虛擬環(huán)境中,我們計算機上的任何其他Python項目將不會受到影響。
如果我們把虛擬環(huán)境搞得一團糟,我們將能夠簡單地刪除它并重新開始,而不會影響我們計算機上的任何其他Python項目,也無需重新安裝Python。
mkdir beeware-tutorial cd beeware-tutorial python3 -m venv beeware-venv source beeware-venv/bin/activate
如果生效,終端提示符應該被更改,它應該有一個(beeware-venv)前綴。表明目前處于BeeWare虛擬環(huán)境中。
如果不是,請重新運行最后一個命令(activate命令)以重新激活虛擬環(huán)境。
2、創(chuàng)建BeeWare應用程序
2.1、安裝BeeWare工具
BeeWare可用于打包應用程序以分發(fā)給最終用戶,但它也可用于引導新項目。
確保你處于beeware-venv虛擬環(huán)境,然后運行:
python -m pip install briefcase
2.2、引導一個新項目
我們將使用以下命令創(chuàng)建一個名為Hello World的應用程序:
briefcase new
BeeWare將要求我們提供新應用程序的一些細節(jié):
- 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不需要實際存在(目前);只有當您將應用程序發(fā)布到應用程序商店時,它才會被使用。
- 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這個架構實際上是一個功能齊全的應用程序,沒有添加任何其他內(nèi)容。
src目錄包含應用程序的所有代碼,tests目錄包含初始測試用例,pyproject.toml文件描述了如何打包應用程序進行分發(fā),包含剛剛提供給BeeWare的配置詳細信息。
2.3、項目架構
在src/helloworld目錄中,您應該看到3個文件:__init__.py、__main__.py和app.py。
- __init__.py 將helloworld目錄標記為可導入的Python模塊。它是一個空文件;它存在的事實告訴Python解釋器,helloworld目錄定義了一個模塊。
- __main__.py 將helloworld模塊標記為一個可執(zhí)行模塊類型
- app.py 包含創(chuàng)建應用程序窗口的邏輯
3、部署到iOS
要編譯iOS應用程序,我們需要Xcode
3.1、創(chuàng)建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命令時提供的所有配置細節(jié)
修改requires配置
requires = [
"requests",
]當Briefcase構建app時,會自動運行pip install requests命令把requests包安裝到app中。
將修改pyproject.toml后,執(zhí)行下面命令升級已打包app中的依賴項:
briefcase update iOS
升級完成后,使用briefcase build iOS和 briefcase run iOS命令重新運行
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python+Selenium實現(xiàn)在Geoserver批量發(fā)布Mongo矢量數(shù)據(jù)
這篇文章主要為大家詳細介紹了如何利用Python+Selenium實現(xiàn)在 Geoserver批量發(fā)布來自Mongo中的矢量數(shù)據(jù),文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-07-07
利用Python封裝MySQLHelper類實現(xiàn)數(shù)據(jù)庫的增刪改查功能
Python 連接 MySQL 的方法有很多,常用的有 pymysql 和 mysql-connector-python 兩種庫,本文主要介紹了如何封裝一個MySQLHelper類,實現(xiàn)對數(shù)據(jù)庫的增刪改查功能,感興趣的可以了解一下2023-06-06
Python3中map(),reduce(),filter()的詳細用法
這篇文章主要介紹了Python3中map(),reduce(),filter()的詳細用法,Python3中的map()、reduce()、filter()?這3個一般是用于對序列進行操作的內(nèi)置函數(shù),它們經(jīng)常需要與?匿名函數(shù)?lambda?聯(lián)合起來使用2022-08-08
Python數(shù)據(jù)類型-序列sequence
這篇文章主要介紹了Python數(shù)據(jù)類型-序列sequence,在前面,我們已經(jīng)對Python學習做了系統(tǒng)的知識梳理(Python思維導圖),我們接下來把知識點分節(jié)進行細講。這一節(jié),我們講解序列,需要的朋友可以參考下2022-01-01

