Skip to content

Installing micropython lib

Paul Sokolovsky edited this page Oct 13, 2018 · 2 revisions

The recommended way(s) are described in https://pycopy.readthedocs.io/en/latest/reference/packages.html

Content below is historical.

Installing on GNU/Linux

On a GNU/Linux system you can install the micropython-lib packages to the default location ~/.micropython/lib using the command make install. By default, all available packages will be installed. make install also accepts the following optional parameters (both can be used at the same time).

  • To install a specific module, use make install MOD=<module>
  • To install to a different location, use make install PREFIX=<directory>

Installing on Mac OSX (may also apply to other BSD-based operating systems)

As of this writing (6 November 2014) Makefile invokes the system commands cp, xargs, and find using certain GNU-specific options that will fail when applied to the BSD versions of these commands which are the default on OSX. (This problem is tracked as issue #10)

Until this issue is resolved, the following workaround is available:

  • Use Macports to install the GNU coreutils: sudo port install coreutils
  • Make a copy of Makefile, naming it something like Makefile-osx, and modify this copy of the Makefile to use the GNU versions of the utilities you just installed: change find to gfind, xargs to gxargs, and cp to gcp
  • Now run make --makefile=Makefile-osx install to install micropython-lib to its default location (~/.micropython/lib)

This could also be run using gmake ..., but this is not required, as the distinctions between BSD and GNU makefile syntax don't come into play for this Makefile.

For convenience, this is my working copy of Makefile-osx:

PREFIX = ~/.micropython/lib

all:

# Installs all modules to a lib location, for development testing
# CMD="find . -maxdepth 1 -mindepth 1 \( -name '*.py' -not -name 'test_*' -not -name 'setup.py' \) -or \( -type d -not -name 'dist' -not -name '*.egg-info' -not -name '__pycache__' \)| xargs --no-run-if-empty cp -r -t $(PREFIX)"
CMD="gfind . -maxdepth 1 -mindepth 1 \( -name '*.py' -not -name 'test_*' -not -name 'setup.py' \) -or \( -type d -not -name 'dist' -not -name '*.egg-info' -not -name '__pycache__' \)| gxargs --no-run-if-empty gcp -r -t $(PREFIX)"

install:
	@mkdir -p $(PREFIX)
	@if [ -n "$(MOD)" ]; then \
	    (cd $(MOD); sh -c $(CMD)); \
	else \
	    for d in $$(gfind . -maxdepth 1 -type d ! -name ".*"); do \
	        echo $$d; \
	        (cd $$d; sh -c $(CMD)); \
	    done \
	fi

Using PIP

Micropython also provides the pip-micropython script which hooks into the standard pip Python package installer to download and install published micropython library modules. At this point pip-micropython is not yet fully compatible with all Linux distributions; this issue is tracked as micropython/micropython#839