Micropython PYPI -Paketvorlageprojekt mit Auto -Bereitstellung
Micropython PYPI -Paket -Vorlage mit auf GitHub -actionbasierten Tests und Bereitstellung
Die neueste Dokumentation ist bei Micropython Package Template RedeTHEDOCS verfügbar
Python3 muss auf Ihrem System installiert werden. Überprüfen Sie die aktuelle Python -Version mit dem folgenden Befehl
python --version
python3 --version Verwenden Sie diesen Befehl, je nachdem, welcher Befehl Python 3.xy (mit XY als einige Zahlen) zurückgegeben wird.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtSchließen Sie das Mikropython -Gerät an ein Netzwerk an (wenn möglich) an ein Netzwerk (wenn möglich).
import network
station = network . WLAN ( network . STA_IF )
station . active ( True )
station . connect ( 'SSID' , 'PASSWORD' )
station . isconnected ()Installieren Sie die neueste Paketversion dieser LIB auf dem Micropython -Gerät
import mip
mip . install ( "github:brainelectronics/micropython-package-template" ) Für Mikropython -Versionen unter 1.19.1 Verwenden Sie das upip -Paket anstelle von mip
import upip
upip . install ( 'micropython-package-template' )Installieren Sie eine bestimmte, feste Paketversion dieser LIB auf dem Micropython -Gerät
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" ) Für Mikropythonversionen unter 1.19.1 verwenden Sie das upip -Paket anstelle von mip . Mit upip wird immer die neueste verfügbare Version installiert.
import upip
upip . install ( 'micropython-package-template' )Installieren Sie eine bestimmte Version des Release -Kandidaten, die zum Testen des Python -Paket -Index auf jedem PR auf dem Micropython -Gerät hochgeladen wurde. Wenn keine bestimmte Version festgelegt ist, wird die neueste stabile Version verwendet.
import mip
mip . install ( "github:brainelectronics/micropython-package-template" , version = "0.6.0-rc9.dev13" ) Für Mikropythonversionen unter 1.19.1 verwenden Sie das upip -Paket anstelle von mip . Mit upip wird immer die neueste verfügbare Version installiert.
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' )Siehe auch Brainelectronics Test PYPI Server in Docker für einen Test PYPI -Server, der auf Docker ausgeführt wird.
Kopieren Sie das Modul in die Mikropythonplatine und importieren Sie sie wie unten gezeigt mit Remote Micropython Shell
Öffnen Sie die Remote -Shell mit dem folgenden Befehl. Verwenden Sie zusätzlich -b 115200 falls kein CP210x verwendet wird, aber ein CH34X.
rshell --port /dev/tty.SLAB_USBtoUART --editor nano Führen Sie den folgenden Befehl im rshell aus, um alle Dateien und Ordner auf das Gerät zu kopieren
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) Installieren Sie das erforderliche Python -Paket mit dem folgenden Befehl in einer virtuellen Umgebung, um Konflikte mit anderen auf Ihrem lokalen System installierten Paketen zu vermeiden.
python3 -m venv .venv
source .venv/bin/activate
pip install twine Dieses Modul überschreibt sdist -Befehl von distutils (auch kompatibel mit Setuptools), um die Vor- und Nachbearbeitung nach dem UPIP-Paketmanager von Micropython durchzuführen. Dieses Skript stammt aus Pfalcon Picoweb und wird als PEP8 -Anpassung aktualisiert.
python setup.py sdist Ein neuer Ordner dist wird erstellt. Der sdist_upip wird verwendet, um alles notwendige zu erstellen.
Beachten Sie: pypi.org und test.pypi.org sind unterschiedlich
Sie können sich nicht bei test.pypi.org mit dem pypi.org -Konto anmelden, es sei denn, Sie haben das gleiche erstellt. Siehe Ungültige Auth -Hilfe -Seite von Test PYPI
Zu den Testzwecken addieren Sie --repository testpypi , um es auf test.pypi.org hochzuladen
twine upload dist/micropython-package-template- * .tar.gz -u PYPI_USERNAME -p PYPI_PASSWORDFühren Sie die Unittests lokal mit dem folgenden Befehl aus, nachdem Sie dieses Paket in einer virtuellen Umgebung installiert haben
# 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_ledGenerieren Sie die Abdeckungsdateien mit
coverage html Der Deckungsbericht wird unter reports/coverage/html/index.html platziert
Um diese Vorlage für ein neues Micropython -Paket zu verwenden, sollten die folgenden Schritte durchgeführt werden, und Änderungen dieser Datei, die erstellt wurden
| Datei | Änderungen | Weitere Details |
|---|---|---|
.coveragerc | Pfad zur Version von version.py | Die Versionsdatei aus der Berichterstattung auslassen |
.coveragerc | Pfad zum Ordner include | Fügen Sie den Paketordner für die Abdeckung hinzu |
.github/workflows/release.yml | Pfad zur Version von version.py | Verwenden Sie die Paketversionsdatei, um die änderelogbasierte Version festzulegen |
.github/workflows/test-release.yml | Pfad zur Version von version.py | Verwenden Sie die Paketversionsdatei, um die änderelogbasierte Version festzulegen |
.github/workflows/test.yml | Pfad zur Version von version.py | Verwenden Sie die Paketversionsdatei, um die änderelogbasierte Version festzulegen |
.pre-commit-config.yaml | Pfad zur Version von version.py | Verwenden Sie die Paketversionsdatei zur Validierung gegen die neueste ChangeLog -basierte Version |
README.md | Links im Abschnitt über den Kopf- und Installationsanweisungen | |
changelog.md | Aufräumarbeiten aus Informationen über die Vorlage | Nutzung des Semvers behalten |
docs/DOCUMENTATION.md | Kink zu Redethedocs | |
docs/conf.py | Listen Sie zu Modulen project , die author werden sollen, Paketimport, Pfad linkcheck_ignore version.py | |
docs/index.rst | Headername und enthalten Module | Ersetzen Sie be_upy_blink durch eine neue .rst -Datei des neuen Pakets |
docs/NEW_MODULE_NAME.rst | Erstellen Sie eine neue .rst -Datei mit dem Namen als Paket | Verwenden Sie docs/be_upy_blink.rst als Vorlage |
package.json | Dateien und Pfade zu einem neuen Paket und Repo | Verwendet von mip |
setup.py | url description version.py name author author_email keywords project_urls packages install_requires | Wird verwendet, um das Paket und seine Informationen bei EG PYPI zu erstellen |
Basierend auf dem PYPA -Beispielprojekt.