Bootstrap Python without administrator, root, or sudo access.
A cross-platform solution for developers working in restricted environments who need a fully functional Python runtime without elevated privileges.
install.cmdchmod +x install.sh
./install.shThat's it! The installer will:
- Download a bootstrap Python (first run only)
- Install your chosen Python version to
~/.python-nonadmin - Install pip
- Configure your PATH
# Install specific version
./install.sh --version 3.11.9
# Force reinstall
./install.sh --force
# List available versions
./install.sh --list
# Uninstall
./install.sh --uninstall# All the same flags work
.\install.cmd --version 3.11.9
.\install.cmd --list
.\install.cmd --uninstall- No admin/sudo required – Installs entirely in user-writable directories
- Cross-platform – Works on Windows, macOS (Intel & Apple Silicon), and Linux (x86_64 & ARM64)
- Version selection – Install any supported Python version
- Complete Python – Includes pip and full standard library
- Virtual environment support – Create isolated environments as usual
- Self-contained – Uses bundled bootstrap Python, no dependencies
┌─────────────────────────────────────────────────────────────┐
│ install.cmd / install.sh │
│ ↓ │
│ Downloads bootstrap Python to bin/python/ (first run) │
│ ↓ │
│ Runs install.py with bootstrap Python │
│ ↓ │
│ install.py downloads target Python version │
│ ↓ │
│ Installs to ~/.python-nonadmin │
│ ↓ │
│ Configures pip + PATH │
└─────────────────────────────────────────────────────────────┘
| Platform | Bootstrap Python | Target Python |
|---|---|---|
| Windows | Python embeddable package | Python embeddable package |
| macOS | python-build-standalone | python-build-standalone |
| Linux | python-build-standalone | python-build-standalone |
| Platform | Location |
|---|---|
| Windows | %USERPROFILE%\.python-nonadmin |
| macOS | $HOME/.python-nonadmin |
| Linux | $HOME/.python-nonadmin |
python --version
pip --version
python -c "import sys; print(sys.executable)"
python examples/demo.pyAfter installation, either restart your terminal or:
. .\scripts\activate.ps1source ./scripts/activate.shpython -m venv myproject-env
# Activate
# Windows: .\myproject-env\Scripts\Activate.ps1
# Unix: source myproject-env/bin/activate
pip install requests flask pandasExecution policy error:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSignedCorporate proxy:
$env:HTTP_PROXY = "http://proxy.company.com:8080"
$env:HTTPS_PROXY = "http://proxy.company.com:8080"
.\install.cmdGatekeeper warning:
xattr -dr com.apple.quarantine ~/.python-nonadminglibc version mismatch:
- Default builds require glibc 2.17+
- For very old systems, consider building from source
- 🏢 Corporate laptops – Work on locked-down enterprise machines
- 🎓 Academic labs – Develop on shared university computers
- 🔒 Sandboxed environments – CI/CD pipelines with limited permissions
- 💾 Portable development – Run Python from USB drives
- 🧪 Testing – Isolated Python versions for testing
Edit config.json to change default Python version and download URLs.
Supported versions (tested):
- 3.12.8 (default)
- 3.12.7
- 3.11.9
- 3.11.8
- 3.10.14
- 3.10.13
./install.sh --uninstall
# or on Windows:
install.cmd --uninstallThis removes the ~/.python-nonadmin directory. You may also want to clean up shell profile entries manually.
MIT License - See LICENSE for details.
Contributions welcome!