install_mpk() would fail with EEXIST if the destination folder already existed from a previous (possibly partial) install, or if a dangling symlink occupied the path (e.g. a dev symlink whose target was removed). Before extracting, now remove the destination if it is: - A real directory (via shutil.rmtree) - A regular file (via os.remove) - A symlink, including broken ones (via os.remove as a fallback) This enables clean reinstalls, updates, and recovery from failed installs. Co-authored-by: Richard Taylor <RT@MacBookPro.lan> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This /lib folder contains:
-
mip.install('github:jonnor/micropython-zipfile')
-
mip.install("aiohttp") # easy websockets
-
https://github.com/micropython/micropython-lib/blob/master/micropython/aiorepl/aiorepl.py version 0.2.2 # for asyncio REPL, allowing await expressions
-
https://github.com/micropython/micropython-lib/blob/master/python-stdlib/base64/base64.py version 3.3.6 # for nostr
-
https://github.com/micropython/micropython-lib/blob/master/python-stdlib/binascii/binascii.py version 2.4.1 # for base64.py
-
https://github.com/micropython/micropython-lib/blob/master/python-stdlib/logging/logging.py version 0.6.2 # for About app
-
https://github.com/micropython/micropython-lib/blob/master/python-stdlib/shutil/shutil.py version 0.0.5 # for rmtree()
-
https://github.com/micropython/micropython-lib/blob/master/python-stdlib/unittest/unittest/__init__.py version 0.10.4 # for testing (also on-device)