# pex

This project is the home of the .pex file, and the `pex` tool which can create them. `pex` also provides a general purpose Python environment-virtualization solution similar to virtualenv. pex is short for “Python Executable”

in brief === To quickly get started building .pex files, go straight to Building .pex files. New to python packaging? Check out packaging.python.org.

intro & history === pex contains the Python packaging and distribution libraries originally available through the twitter commons but since split out into a separate project. The most notable components of pex are the .pex (Python EXecutable) format and the associated `pex` tool which provide a general purpose Python environment virtualization solution similar in spirit to virtualenv. PEX files have been used by Twitter to deploy Python applications to production since 2011.

To learn more about what the .pex format is and why it could be useful for you, see What are .pex files? For the impatient, there is also a (slightly outdated) lightning talk published by Twitter University: WTF is PEX?. To go straight to building pex files, see Building .pex files.

Guide:

- What are .pex files?
  - tl;dr
  - Why .pex files?
  - How do .pex files work?
- Building .pex files
- Invoking the `pex` utility
  - Specifying requirements
  - Specifying entry points
  - Saving .pex files
  - Tailoring requirement resolution
  - Tailoring PEX execution at build time
  - Tailoring PEX execution at runtime
- Using `bdist_pex`
  - `bdist_pex`
  - `bdist_pex --bdist-all`
- Other ways to build PEX files
- PEX API Reference
  - Module contents
  - pex.crawler module
  - pex.environment module
  - pex.fetcher module
  - pex.finders module
  - pex.http module
  - pex.installer module
  - pex.interpreter module
  - pex.iterator module
  - pex.link module
  - pex.package module
  - pex.pep425 module
  - pex.pex module
  - pex.pex_builder module
  - pex.pex_info module
  - pex.platforms module
  - pex.resolver module
  - pex.testing module
  - pex.tracer module
  - pex.translator module
  - pex.util module
  - pex.variables module