자동 배포가있는 Micropython PYPI 패키지 템플릿 프로젝트
GitHub 액션 기반 테스트 및 배포가있는 Micropython PYPI 패키지 템플릿
최신 문서는 Micropython 패키지 템플릿 Readthedocs에서 제공됩니다.
Python3은 시스템에 설치해야합니다. 다음 명령으로 현재 Python 버전을 확인하십시오
python --version
python3 --version 어떤 명령 Python 3.xy (일부 숫자로 xy)가 반환되는 경우 해당 명령을 사용하여 진행하십시오.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtMicropython 장치를 네트워크에 연결하십시오 (가능한 경우)
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 버전의 경우 mip 대신 upip 패키지를 사용하십시오.
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 버전의 경우 mip 대신 upip 패키지를 사용하십시오. 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 버전의 경우 mip 대신 upip 패키지를 사용하십시오. 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에서 실행되는 테스트 PYPI 서버에 대한 Docker의 BrainElectronics Test PYPI 서버를 참조하십시오.
모듈을 Micropython 보드에 복사하여 원격 Micropython Shell을 사용하여 아래 그림과 같이 가져옵니다.
다음 명령으로 원격 쉘을 엽니 다. CP210X를 사용하지 않고 CH34X가 사용되지 않는 경우 -b 115200 사용하십시오.
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 이 모듈은 Micropython의 UPIP 패키지 관리자에 필요한대로 사전 및 사후 처리를 수행하기 위해 Distutils (Setuptools와 호환) sdist 명령을 무시합니다. 이 스크립트는 PFALCON의 PICOWEB에서 가져와 PEP8 준수로 업데이트되었습니다.
python setup.py sdist 새로운 폴더 dist 생성됩니다. sdist_upip 은 필요한 모든 것을 만드는 데 사용됩니다.
주의하십시오 : pypi.org 및 test.pypi.org는 다릅니다
다른 사람에서 동일하게 생성하지 않으면 pypi.org 계정으로 test.pypi.org에 로그인 할 수 없습니다 . Test PYPI의 잘못된 Auth 도움말 페이지를 참조하십시오
테스트 목적을 위해 --repository testpypi 추가하여 test.pypi.org에 업로드하십시오.
twine upload dist/micropython-package-template- * .tar.gz -u PYPI_USERNAME -p PYPI_PASSWORD가상 환경 에서이 패키지를 설치 한 후 다음 명령으로 UnitTests를 로컬로 실행하십시오.
# 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 에 배치됩니다
이 템플릿을 새 마이크로 파이썬 패키지에 다음 단계로 사용하려면이 파일을 변경해야합니다.
| 파일 | 변화 | 자세한 내용 |
|---|---|---|
.coveragerc | version.py 파일의 경로 | 적용 범위에서 버전 파일을 생략하십시오 |
.coveragerc | 폴더 include 경로 | 커버리지에 대한 패키지 폴더를 포함하십시오 |
.github/workflows/release.yml | version.py 파일의 경로 | 패키지 버전 파일을 사용하여 changelog 기반 버전을 설정하십시오 |
.github/workflows/test-release.yml | version.py 파일의 경로 | 패키지 버전 파일을 사용하여 changelog 기반 버전을 설정하십시오 |
.github/workflows/test.yml | version.py 파일의 경로 | 패키지 버전 파일을 사용하여 changelog 기반 버전을 설정하십시오 |
.pre-commit-config.yaml | version.py 파일의 경로 | 최신 ChangeLog 기반 버전에 대한 유효성 검사를 위해 패키지 버전 파일을 사용합니다. |
README.md | 헤더 섹션 및 설치 지침의 링크 | |
changelog.md | 템플릿 정보에서 ChangeLog를 정리하십시오 | Semver의 사용을 유지하십시오 |
docs/DOCUMENTATION.md | Readthedocs의 꼬임 | |
docs/conf.py | 조롱 할 모듈에 목록, 패키지 가져 오기, Path to version.py 파일, 업데이트 author , project 및 linkcheck_ignore | |
docs/index.rst | 헤더 이름 및 포함 모듈 | be_upy_blink 새 패키지의 새 .rst 파일로 바꾸십시오 |
docs/NEW_MODULE_NAME.rst | 패키지로 이름이 지정된 새 .rst 파일을 만듭니다 | docs/be_upy_blink.rst 템플릿으로 사용하십시오 |
package.json | 새 패키지 및 리포지토리로가는 파일 및 경로 | mip 에서 사용합니다 |
setup.py | version.py 파일, name , description , url , author , keywords , author_email packages project_urls install_requires | PAYPI에 게시 된 패키지 및 정보를 작성하는 데 사용됩니다. |
PYPA 샘플 프로젝트를 기반으로합니다.