Micropython PYPI包裝模板與自動部署
Micropython PYPI軟件包模板帶有基於GITHUB動作的測試和部署
最新文檔可在Micropython軟件包模板上找到readThedocs
Python3必須安裝在您的系統上。使用以下命令檢查當前的Python版本
python --version
python3 --version根據命令Python 3.xy (以xy為單位)返回哪個命令,請使用該命令繼續進行。
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt將Micropython設備連接到網絡(如果可能的話)
import network
station = network . WLAN ( network . STA_IF )
station . active ( True )
station . connect ( 'SSID' , 'PASSWORD' )
station . isconnected ()在Micropython設備上安裝此LIB的最新軟件包版本
import mip
mip . install ( "github:brainelectronics/micropython-package-template" )對於低於1.19.1的Micropython版本,請使用upip包而不是mip
import upip
upip . install ( 'micropython-package-template' )在Micropython設備上安裝此LIB的特定固定軟件包版本
import mip
# install a verions of a specific branch
mip . install ( "github:brainelectronics/micropython-package-template" , version = "feature/initial-implementation" )
# install a tag version
mip . install ( "github:brainelectronics/micropython-package-template" , version = "0.6.0" )對於低於1.19.1的Micropython版本,請使用upip包而不是mip 。使用upip始終將安裝最新的可用版本。
import upip
upip . install ( 'micropython-package-template' )在Micropython設備上的每個PR上安裝上傳的特定版本候選版本,以測試Python軟件包索引。如果未設置特定版本,將使用最新的穩定版本。
import mip
mip . install ( "github:brainelectronics/micropython-package-template" , version = "0.6.0-rc9.dev13" )對於低於1.19.1的Micropython版本,請使用upip包而不是mip 。使用upip始終將安裝最新的可用版本。
import upip
# overwrite index_urls to only take artifacts from test.pypi.org
upip . index_urls = [ 'https://test.pypi.org/pypi' ]
upip . install ( 'micropython-package-template' )另請參見Docker中的Braineleclectronics測試PYPI服務器,以獲取在Docker上運行的測試PYPI服務器。
將模塊複製到Micropython板上並將其導入,如下圖所示
使用以下命令打開遠程外殼。另外,如果不使用CP210X,則使用-b 115200 ,但使用CH34X。
rshell --port /dev/tty.SLAB_USBtoUART --editor nano在rshell內部執行以下命令以將所有文件和文件夾複製到設備
mkdir /pyboard/lib
mkdir /pyboard/lib/be_upy_blink
cp be_upy_blink/ * /pyboard/lib/be_upy_blink
cp examples/main.py /pyboard
cp examples/boot.py /pyboard from be_upy_blink import flash_led
from machine import Pin
led_pin = Pin ( 4 , Pin . OUT )
flash_led ( pin = led_pin , amount = 3 )
# flash_led(pin=led_pin, amount=3, on_time=1, off_time=3) 在虛擬環境中安裝所需的Python軟件包,其中包含以下命令,以避免與本地系統上安裝的其他軟件包發生任何衝突。
python3 -m venv .venv
source .venv/bin/activate
pip install twine該模塊覆蓋了SDIST命令(也與SETUPTOOLS兼容) sdist命令,以根據Micropython的Upip Package Manager執行預處理和後處理。該腳本取自Pfalcon的Picoweb,並更新為PEP8符合。
python setup.py sdist將創建一個新的文件夾dist 。 sdist_upip將用於創建所有必要的東西。
請注意:pypi.org和test.pypi.org不同
除非您在另一個方面創建相同的內容,否則您無法使用pypi.org帳戶登錄test.pypi.org。請參閱Invalid auth幫助頁面PYPI
為了測試目的,添加--repository testpypi將其上傳到test.pypi.org
twine upload dist/micropython-package-template- * .tar.gz -u PYPI_USERNAME -p PYPI_PASSWORD在虛擬環境中安裝此軟件包後,使用以下命令在本地運行Unitests
# create a report directory where all generated report files are placed
python create_report_dirs.py # run all tests
nose2 --config tests/unittest.cfg
# run only one specific tests
nose2 tests.test_blink.TestBlink.test_flash_led用
coverage html覆蓋報告放置在reports/coverage/html/index.html
為了將此模板用於新的Micropython軟件包,應完成以下步驟,然後對這些文件進行更改
| 文件 | 更改 | 更多細節 |
|---|---|---|
.coveragerc | 通往version.py的路徑.py文件 | 從覆蓋範圍省略版本文件 |
.coveragerc | include文件夾的路徑 | 包括包裝夾以進行覆蓋 |
.github/workflows/release.yml | 通往version.py的路徑.py文件 | 使用軟件包版本文件設置基於變更的版本 |
.github/workflows/test-release.yml | 通往version.py的路徑.py文件 | 使用軟件包版本文件設置基於變更的版本 |
.github/workflows/test.yml | 通往version.py的路徑.py文件 | 使用軟件包版本文件設置基於變更的版本 |
.pre-commit-config.yaml | 通往version.py的路徑.py文件 | 使用軟件包版本文件以驗證最新的基於ChangElog的版本 |
README.md | 標題部分和安裝說明中的鏈接 | |
changelog.md | 清理模板信息的更改 | 使用SEMVER |
docs/DOCUMENTATION.md | 糾結到讀者 | |
docs/conf.py | 列表到要嘲笑的模塊,包裝導入,通往version.py的路徑。文件,更新author , project和linkcheck_ignore | |
docs/index.rst | 標題名稱,包括模塊 | 用新軟件包的新.rst替換be_upy_blink |
docs/NEW_MODULE_NAME.rst | 創建一個名為“軟件包”的新的.rst文件 | 使用docs/be_upy_blink.rst作為模板 |
package.json | 文件和新軟件包和回購的路徑 | 由mip使用 |
setup.py | path version.py文件, name , description , url , author ,作者author_email , keywords , project_urls , packages , install_requires | 用於創建包裹及其在EG PYPI上發布的信息 |
基於PYPA樣本項目。