CLI Reference#
All commands are accessed through the pyodide CLI, provided by the pyodide-cli package (installed automatically with pyodide-build).
pyodide build#
Use pypa/build to build a Python package from source, pypi or url.
Usage
pyodide build [OPTIONS] [SOURCE_LOCATION]
Options
- -o, --outdir <output_directory>#
which directory should the output be placed into?
- -r, --requirements <requirements_txt>#
Build a list of package requirements from a requirements.txt file
- --exports <exports>#
Which symbols should be exported when linking .so files?
- --build-dependencies, --no-build-dependencies#
Fetch dependencies from pypi and build them too.
- --output-lockfile <output_lockfile>#
Output list of resolved dependencies to a file in requirements.txt format
- --skip-dependency <skip_dependency>#
Skip building or resolving a single dependency, or a pyodide-lock.json file. Use multiple times or provide a comma separated list to skip multiple dependencies.
- --skip-built-in-packages, --no-skip-built-in-packages#
Don’t build dependencies that are built into the pyodide distribution.
- --compression-level <compression_level>#
Compression level to use for the created zip file
- Default:
6
- -n, --no-isolation#
Disable building the project in an isolated virtual environment. Build dependencies must be installed separately when this option is used
- -x, --skip-dependency-check#
Do not check that the build dependencies are installed. This option is only useful when used with –no-isolation.
- -C, --config-setting <KEY[=VALUE>#
Settings to pass to the backend. Works same as the –config-setting option of pypa/build.
- --xbuildenv-path <xbuildenv_path>#
Path to the cross-build environment directory.
- --skip-emscripten-install#
Skip automatic installation of Emscripten if not found.
Arguments
- SOURCE_LOCATION#
Optional argument
Environment variables
- PYODIDE_BUILD_EXPORTS
Provide a default for
--exports
- PYODIDE_XBUILDENV_PATH
Provide a default for
--xbuildenv-path
- PYODIDE_SKIP_EMSCRIPTEN_INSTALL
Provide a default for
--skip-emscripten-install
pyodide build-recipes#
Build packages using yaml recipes.
* for all packages in recipe directory.Usage
pyodide build-recipes [OPTIONS] PACKAGES...
Options
- --recipe-dir <recipe_dir>#
The directory containing the recipe of packages. If not specified, the default is
./packages
- --build-dir <build_dir>#
The directory where build directories for packages are created. Default: recipe_dir.
- --install, --no-install#
If true, install the built packages into the install_dir. If false, build packages without installing.
- --install-dir <install_dir>#
Path to install built packages and pyodide-lock.json. If not specified, the default is
./dist.
- --metadata-files, --no-metadata-files#
If true, extract the METADATA file from the built wheels to a matching
*.whl.metadatafile. If false, no*.whl.metadatafile is produced.
- --no-deps, --no-no-deps#
Removed, use pyodide build-recipes-no-deps instead.
- --cflags <cflags>#
Extra compiling flags. Default: SIDE_MODULE_CFLAGS
- --cxxflags <cxxflags>#
Extra compiling flags. Default: SIDE_MODULE_CXXFLAGS
- --ldflags <ldflags>#
Extra linking flags. Default: SIDE_MODULE_LDFLAGS
- --target-install-dir <target_install_dir>#
The path to the target Python installation. Default: TARGETINSTALLDIR
- --host-install-dir <host_install_dir>#
Directory for installing built host packages. Default: HOSTINSTALLDIR
- --log-dir <log_dir>#
Directory to place log files
- --force-rebuild, --no-force-rebuild#
Force rebuild of all packages regardless of whether they appear to have been updated
- --n-jobs <n_jobs>#
Number of packages to build in parallel (default: # of cores in the system)
- --compression-level <compression_level>#
Level of zip compression to apply when installing. 0 means no compression.
- Default:
6
- --clean#
Remove the build directory after a successful build of each package.
- --skip-emscripten-install#
Skip automatic installation of Emscripten if not found.
Arguments
- PACKAGES#
Required argument(s)
Environment variables
- PYODIDE_RECIPE_BUILD_DIR
Provide a default for
--build-dir
- PYODIDE_ZIP_COMPRESSION_LEVEL
Provide a default for
--compression-level
- PYODIDE_SKIP_EMSCRIPTEN_INSTALL
Provide a default for
--skip-emscripten-install
pyodide build-recipes-no-deps#
Build packages using yaml recipes but don’t try to resolve dependencies.
* for all packages in recipe directory.Usage
pyodide build-recipes-no-deps [OPTIONS] PACKAGES...
Options
- --recipe-dir <recipe_dir>#
The directory containing the recipe of packages. If not specified, the default is
./packages
- --build-dir <build_dir>#
The directory where build directories for packages are created. Default: recipe_dir.
- --cflags <cflags>#
Extra compiling flags. Default: SIDE_MODULE_CFLAGS
- --cxxflags <cxxflags>#
Extra compiling flags. Default: SIDE_MODULE_CXXFLAGS
- --ldflags <ldflags>#
Extra linking flags. Default: SIDE_MODULE_LDFLAGS
- --target-install-dir <target_install_dir>#
The path to the target Python installation. Default: TARGETINSTALLDIR
- --host-install-dir <host_install_dir>#
Directory for installing built host packages. Default: HOSTINSTALLDIR
- --force-rebuild, --no-force-rebuild#
Force rebuild of all packages regardless of whether they appear to have been updated
- --continue#
Continue a build from the middle. For debugging. Implies ‘–force-rebuild’
- --skip-rust-setup#
Don’t setup rust environment when building a rust package
- --clean#
Remove the build directory after a successful build of each package.
- --skip-emscripten-install#
Skip automatic installation of Emscripten if not found.
Arguments
- PACKAGES#
Required argument(s)
Environment variables
- PYODIDE_RECIPE_BUILD_DIR
Provide a default for
--build-dir
- PYODIDE_SKIP_EMSCRIPTEN_INSTALL
Provide a default for
--skip-emscripten-install
pyodide clean#
Clean build artifacts.
Usage
pyodide clean [OPTIONS] COMMAND [ARGS]...
recipes#
Remove build artifacts for recipe packages.
Usage
pyodide clean recipes [OPTIONS] [TARGETS]...
Options
- --recipe-dir <recipe_dir>#
Directory containing package recipes. Defaults to <pyodide root>/packages.
- --build-dir <build_dir>#
Directory where package build artifacts are stored. Defaults to recipe directory.
Arguments
- TARGETS#
Optional argument(s)
Environment variables
- PYODIDE_RECIPE_BUILD_DIR
Provide a default for
--build-dir
pyodide config#
Manage config variables used in pyodide.
Usage
pyodide config [OPTIONS] COMMAND [ARGS]...
get#
Get a value of a single config variable used in pyodide.
Usage
pyodide config get [OPTIONS] CONFIG_VAR
Arguments
- CONFIG_VAR#
Required argument
list#
List config variables used in pyodide.
Usage
pyodide config list [OPTIONS]
pyodide py-compile#
Compile .py files to .pyc in a wheel, a zip file, or a folder with wheels or zip files.
If the provided folder contains the pyodide-lock.json file, it will be rewritten with the updated wheel / zip file paths and sha256 checksums.
Usage
pyodide py-compile [OPTIONS] PATH
Options
- --silent, --no-silent#
Silent mode, do not print anything.
- --keep, --no-keep#
Keep the original wheel / zip file.
- --compression-level <compression_level>#
Compression level to use for the created zip file.
- Default:
6
- --exclude <exclude>#
List of files to exclude from compilation, works only for directories. Defaults to no files.
Arguments
- PATH#
Required argument
pyodide skeleton#
Add a new package build recipe or update an existing recipe.
Usage
pyodide skeleton [OPTIONS] COMMAND [ARGS]...
disable#
Disable packages.
Usage
pyodide skeleton disable [OPTIONS] NAMES...
Options
- -m, --message <message>#
Comment to explain why it was disabled.
- --recipe-dir <recipe_dir>#
The directory containing the recipe of packages. If not specified, the default is
<cwd>/packages.
Arguments
- NAMES#
Required argument(s)
enable#
Enable packages.
Usage
pyodide skeleton enable [OPTIONS] NAMES...
Options
- --recipe-dir <recipe_dir>#
The directory containing the recipe of packages. If not specified, the default is
<cwd>/packages.
Arguments
- NAMES#
Required argument(s)
pin#
Pin packages.
Usage
pyodide skeleton pin [OPTIONS] NAMES...
Options
- -m, --message <message>#
Comment to explain why it was pinned.
- --recipe-dir <recipe_dir>#
The directory containing the recipe of packages. If not specified, the default is
<cwd>/packages.
Arguments
- NAMES#
Required argument(s)
pypi#
Create a new package recipe from PyPI or update an existing recipe.
Usage
pyodide skeleton pypi [OPTIONS] NAME
Options
- -u, --update#
Update an existing recipe instead of creating a new one.
- --update-patched#
Force update the package even if it contains patches.
- --update-pinned#
Force update the package even if is pinned.
- --version <version>#
The version of the package, if not specified, latest version will be used.
- --source-format <source_format>#
Which source format is preferred. Options are wheel or sdist. If not specified, then either a wheel or an sdist will be used.
- Options:
wheel | sdist
- --recipe-dir <recipe_dir>#
The directory containing the recipe of packages. If not specified, the default is
<cwd>/packages.
- -m, --maintainer <maintainer>#
The github username to use as the maintainer.
- --gh-maintainer, --ghm#
Set the maintainer from ‘gh auth status’. Requires gh cli.
Arguments
- NAME#
Required argument
pyodide venv#
Create a Pyodide virtual environment.
Additionally, this interface supports a subset of the arguments that virtualenv supports, with some minor differences for Pyodide compatibility. Please note that passing extra options is experimental and may be subject to change.
Usage
pyodide venv [OPTIONS] DEST
Options
- --clear, --no-clear#
Remove the destination directory if it exists.
- --no-vcs-ignore#
Don’t create VCS ignore directive in the destination directory.
- --no-download, --never-download#
Disable download of the latest pip/setuptools from PyPI.
- --download, --no-download#
Enable download of the latest pip/setuptools from PyPI.
- --extra-search-dir <extra_search_dir>#
A path containing wheels to extend the internal wheel list.
- --pip <pip>#
Version of pip to install as seed: embed, bundle, or exact version.
- Default:
'bundle'
- --setuptools <setuptools>#
Version of setuptools to install as seed: embed, bundle, none or exact version.
- --no-setuptools#
Do not install setuptools.
- --no-periodic-update#
Disable the periodic update of the embedded wheels.
Arguments
- DEST#
Required argument
pyodide xbuildenv#
Manage cross-build environment for building packages for Pyodide.
Usage
pyodide xbuildenv [OPTIONS] COMMAND [ARGS]...
install#
Install cross-build environment.
The installed environment is the same as the one that would result from PYODIDE_PACKAGES=’scipy’ make except that it is much faster. The goal is to enable out-of-tree builds for binary packages that depend on numpy or scipy.
Usage
pyodide xbuildenv install [OPTIONS] [VERSION]
Options
- --path <path>#
destination to download cross-build environment directory to.
- --url <url>#
URL to download cross-build environment from.
- -f, --force#
force installation even if the version is not compatible.
- --nightly#
install a nightly cross-build environment instead of a stable release.
- --debug#
install the debug variant of the cross-build environment (nightly only).
- --skip-cross-build-packages#
Deprecated, no-op. Cross-build packages are installed lazily when required by build dependencies.
Arguments
- VERSION#
Optional argument
Environment variables
- PYODIDE_XBUILDENV_PATH
Provide a default for
--path
- PYODIDE_SKIP_CROSS_BUILD_PACKAGES
Provide a default for
--skip-cross-build-packages
install-emscripten#
Install Emscripten SDK into the cross-build environment.
This command clones the emsdk repository, installs and activates the specified Emscripten version, and applies Pyodide-specific patches.
If the requested version is already installed, the command is a no-op unless –force is passed.
Usage
pyodide xbuildenv install-emscripten [OPTIONS]
Options
- --version <version>#
Emscripten version corresponding to the target Pyodide version
- --path <path>#
Pyodide cross-env path
- -f, --force#
force reinstallation even if the same version is already installed.
search#
Search for available versions of cross-build environment.
Usage
pyodide xbuildenv search [OPTIONS]
Options
- --metadata <metadata_path>#
path to cross-build environment metadata file. It can be a URL or a local file. If not given, the default metadata file is used.
- -a, --all#
search all versions, without filtering out incompatible ones.
- --nightly#
search nightly releases instead of stable ones.
- --debug#
search nightly debug releases instead of stable ones.
- --json#
output results in JSON format.
uninstall#
Uninstall cross-build environment.
Usage
pyodide xbuildenv uninstall [OPTIONS] [VERSION]
Options
- --path <path>#
path to cross-build environment directory.
Arguments
- VERSION#
Optional argument
use#
Select a version of cross-build environment to use.
Usage
pyodide xbuildenv use [OPTIONS] VERSION
Options
- --path <path>#
path to cross-build environment directory.
Arguments
- VERSION#
Required argument
version#
Print current version of cross-build environment.
Usage
pyodide xbuildenv version [OPTIONS]
Options
- --path <path>#
path to cross-build environment directory.
versions#
Print all installed versions of cross-build environment.
Usage
pyodide xbuildenv versions [OPTIONS]
Options
- --path <path>#
path to cross-build environment directory.