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样本项目。