| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
This action sets up a Python environment for use in actions by:
See action.yml
Basic:
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.x' # Version range or exact version of a Python version to use, using SemVer's version range syntax
architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified
- run: python my_script.pyMatrix Testing:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ '2.x', '3.x', 'pypy-2.7', 'pypy-3.6', 'pypy-3.7' ]
name: Python ${{ matrix.python-version }} sample
steps:
- uses: actions/checkout@v2
- name: Setup python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- run: python my_script.pyExclude a specific Python version:
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['2.7', '3.6', '3.7', '3.8', 'pypy-2.7', 'pypy-3.6']
exclude:
- os: macos-latest
python-version: '3.8'
- os: windows-latest
python-version: '3.6'
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Display Python version
run: python -c "import sys; print(sys.version)"Download and set up a version of Python that does not come preinstalled on an image:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
# in this example, there is a newer version already installed, 3.7.7, so the older version will be downloaded
python-version: ['3.5', '3.6', '3.7.4', '3.8']
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- run: python my_script.pyDownload and set up an accurate pre-release version of Python:
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.9.0-beta.4'
- run: python my_script.pyDownload and set up the latest available version of Python (includes both pre-release and stable versions):
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.9.0-alpha - 3.9.0' # SemVer's version range syntax
- run: python my_script.pyDownload and set up PyPy:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- 'pypy-3.6' # the latest available version of PyPy that supports Python 3.6
- 'pypy-3.7' # the latest available version of PyPy that supports Python 3.7
- 'pypy-3.7-v7.3.3' # Python 3.7 and PyPy 7.3.3
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- run: python my_script.pyMore details on PyPy syntax and examples of using preview / nightly versions of PyPy can be found in the Available versions of PyPy section.
Check out our detailed guide on using Python with GitHub Actions.
setup-python is able to configure Python from two sources:
setup-python is able to configure PyPy from two sources:
Preinstalled versions of PyPy in the tools cache on GitHub-hosted runners
Downloadable PyPy versions from the official PyPy site.
GitHub hosted runners have a tools cache that comes with a few versions of Python + PyPy already installed. This tools cache helps speed up runs and tool setup by not requiring any new downloads. There is an environment variable called RUNNER_TOOL_CACHE on each runner that describes the location of this tools cache and there is where you will find Python and PyPy installed. setup-python works by taking a specific version of Python or PyPy in this tools cache and adding it to PATH.
| Location | |
|---|---|
| Tool Cache Directory | RUNNER_TOOL_CACHE |
| Python Tool Cache | RUNNER_TOOL_CACHE/Python/* |
| PyPy Tool Cache | RUNNER_TOOL_CACHE/PyPy/* |
GitHub virtual environments are setup in actions/virtual-environments. During the setup, the available versions of Python and PyPy are automatically downloaded, setup and documented.
If there is a specific version of Python that you need and you don't want to worry about any potential breaking changes due to patch updates (going from 3.7.5 to 3.7.6 for example), you should specify the exact major, minor, and patch version (such as 3.7.5)
You should specify only a major and minor version if you are okay with the most recent patch version being used.
The version of PyPy should be specified in the format pypy-<python_version>[-v<pypy_version>]. The <pypy_version> parameter is optional and can be skipped. The latest version will be used in this case.
pypy-3.6 # the latest available version of PyPy that supports Python 3.6 pypy-3.7 # the latest available version of PyPy that supports Python 3.7 pypy-2.7 # the latest available version of PyPy that supports Python 2.7 pypy-3.7-v7.3.3 # Python 3.7 and PyPy 7.3.3 pypy-3.7-v7.x # Python 3.7 and the latest available PyPy 7.x pypy-3.7-v7.3.3rc1 # Python 3.7 and preview version of PyPy pypy-3.7-nightly # Python 3.7 and nightly PyPy
Python distributions are only available for the same environments that GitHub Actions hosted environments are available for. If you are using an unsupported version of Ubuntu such as 19.04 or another Linux distribution such as Fedora, setup-python will not work. If you have a supported self-hosted runner and you would like to use setup-python, there are a few extra things you need to make sure are set up so that new versions of Python can be downloaded and configured on your runner.
If you are experiencing problems while configuring Python on your self-hosted runner, turn on step debugging to see addition logs.
setup-python helps keep your dependencies explicit and ensures consistent behavior between different runners. If you use python in a shell on a GitHub hosted runner without setup-python it will default to whatever is in PATH. The default version of Python in PATH vary between runners and can change unexpectedly so we recommend you always use setup-python.
The scripts and documentation in this project are released under the MIT License.
Contributions are welcome! See our Contributor's Guide.
| Back | FazBrowse Home | New Git URL |