pfalcon / pycopy-lib

Standard library of the Pycopy project, minimalist and light-weight Python language implementation
https://github.com/pfalcon/pycopy
Other
248 stars 70 forks source link

Feature: allow upip to install packages by URL #46

Open rvalle opened 4 years ago

rvalle commented 4 years ago

I am new to micropython, I am figuring out how to keep my application up to date over the air.

Since code is small and connectivity good, I was thinking on pip installing my python code on every boot.

upip seems to do most of it, download, unpack, install etc, but then:

https://github.com/pfalcon/pycopy-lib/blob/39464d7163a9545464bd4e7ea197df01e8b0a41a/upip/upip.py#L294

Why?

Otherwise, what is the recommended method to OTA update my micropython application?

pfalcon commented 4 years ago

Note: only Pycopy packages (usually, named pycopy-*) are supported

That phrase means that upip can't install an arbitrary CPython package as published on PyPI. For example, don't expect to be able to install Django (and it to work).

Beyond that, upip is intended to run on the smallest systems (like esp8266), which means it should be small and featureset limited. I myself for example would love to make it install modules directly from git, like big pip can, but doubt that such feature fits in.

In that regard, installing a package directly from URL might be a compromise feature which won't take much code to add, I'll add that to my TODO.

For now, you have a choice to publish your package to PyPI, and install it from there.

rvalle commented 4 years ago

Ok, I totally missed that. upip will actually install packages that are published in PyPI directly on the target device?

That is almost as good... if they can be be installed on device start (boot.py).