npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@bjia56/portable-python

v0.1.112

Published

Portable Python

Downloads

3,673

Readme

portable-python

GitHub Downloads (all assets, all releases) NPM Version

This project provides self-contained (hence, "portable") Python distributions to a variety of target platforms and architectures. These Python distributions can be downloaded and extracted to anywhere on the filesystem, making installation trivially easy and configurable.

Usage

To get started, download archives from GitHub releases. Alternatively, use any of the following installers:

  • npm i @bjia56/portable-python-3.9
  • npm i @bjia56/portable-python-3.10
  • npm i @bjia56/portable-python-3.11
  • npm i @bjia56/portable-python-3.12
  • npm i @bjia56/portable-python-3.13

For example, on Linux via bash:

$ wget -q https://github.com/bjia56/portable-python/releases/download/cpython-v3.12.6-build.5/python-headless-3.12.6-linux-x86_64.zip
$ unzip -qq python-headless-3.12.6-linux-x86_64.zip
$ ./python-headless-3.12.6-linux-x86_64/bin/python --version
Python 3.12.6

Or via the node installer:

$ npm i --silent @bjia56/portable-python-3.12
$ ./node_modules/@bjia56/portable-python-3.12/python-headless-3.12.6-linux-x86_64/bin/python --version
Python 3.12.6

Or via node:

var pythonExe = require("@bjia56/portable-python-3.12");
var child_process = require("child_process");
console.log(child_process.execSync(`${pythonExe} --version`).toString());

Available distributions

Currently, CPython 3.9, 3.10, 3.11, 3.12, and 3.13 are built for the following targets:

  • Linux x86_64, i386, aarch64, arm 1, riscv64, s390x, loongarch64, powerpc64le (glibc)
  • Windows x86_64 2
  • MacOS x86_64, arm64 3
  • FreeBSD 13, 14, 15 x86_64
  • Solaris 11 x86_64
  • Cosmopolitan libc 4

For Linux CPython builds, the minimum glibc required is as follows:

| Hardware Architecture | Minimum glibc Version | |-|-| | x86_64 | 2.17 | | i386 | 2.17 | | aarch64 | 2.17 | | arm | 2.17 | | riscv64 | 2.27 | | s390x | 2.19 | | loongarch64 | 2.36 | | powerpc64le | 2.19 |

For all CPython distributions except for the Cosmopolitan libc build, there are two available variants: full and headless. The distinction is that headless builds do not include any UI libraries (i.e. tkinter and its dependencies), so are better suited for non-graphical server installations.

PyPy and GraalPy distributions are also available as repackaged versions of official upstream releases. Though they are already portable, the distributions have been made available through the node installers for convenience and flexibility.

1 The arm builds target armv6, specifically the configuration of the Raspberry Pi 1. Current arm builds do not work properly on old glibc (despite the glibc 2.17 target), but a recent version of Raspbian like Debian bullseye should provide a new enough glibc to work.

2 Windows distributions require a minimum of Windows 10.

3 MacOS distributions are provided as universal2, which will work on both x86_64 and arm64. The minimum MacOS version is 10.9 on x86_64 and 11.0 on arm64.

4 Cosmopolitan builds are statically linked and may not support all Python features. See the Cosmopolitan project's documentation for minimum operating system requirements.

Licensing

The build scripts and code in this repository are available under the Apache-2.0 License. Note that compilation of Python involves linking against other libraries, some of which may include different licensing terms. Copies of the licenses from known dependencies are included under the licenses directory of each Python distribution.