# Update to Onboarding Tutorial

**URL:** <https://bristlemouth.discourse.group/t/update-to-onboarding-tutorial/470>\
**Category:** Dev Kit Support\
**Tags:** documentation\
**Created:** [January 24, 2025, 7:44pm UTC](https://bristlemouth.discourse.group/t/update-to-onboarding-tutorial/470 "2025-01-24T19:44:41Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![BUOY](https://avatars.discourse-cdn.com/v4/letter/b/f04885/32.png) [@BUOY](https://bristlemouth.discourse.group/u/BUOY)\
**Post date:** [January 24, 2025, 7:44pm UTC](https://bristlemouth.discourse.group/t/update-to-onboarding-tutorial/470/1 "2025-01-24T19:44:41Z")

</div>

When trying to install the pyserial package on macOS using the command `python3 -m pip install -U pyserial` I got `error: externally-managed-environment`. Why? macOS’s updated Python environment restrictions (PEP 668), prevent global package installations to protect system-managed Python environments. There are three possible resolutions:

1. pipx (detailed below)
2. virtual environment - what I did: `python3 -m venv pyserial_env \ source pyserial_env/bin/activate \ `python3 -m serial```
3. Bypass restrictions - not super advisable, as the new restrictions make sense: `python3 -m pip install pyserial --break-system-packages`

I’d recommend updating the tutorial :

### Installing Python miniterm on macOS using pipx

A. **Install Homebrew (if not already installed)**:  
Open Terminal and run:

````bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 

B. **Install pySerial using pipx:**
```pipx install pyserial```

C. **Install pySerial using pipx:**
```pipx install pyserial```

D. **Run miniterm:**
```python3 -m serial```
````
