# Python 3.9 alpha in Fedora
The Python developers have already released five alpha versions of Python 3.9.0 and you can already try the latest one in Fedora! Test your Python code with 3.9 early to avoid surprises once the final 3.9.0 is out in October.
## Install Python 3.9 on Fedora
If you run Fedora, you can install Python 3.9 from the official software repository with *dnf*:
```
$ sudo dnf install python3.9
```
In order to get the very latest pre-release, you might need to enable the *updates-testing* repository:
```
$ sudo dnf install --enablerepo=updates-testing python3.9
```
As more alphas, betas and release candidates of [Python 3.9 will be released](https://www.python.org/dev/peps/pep-0596/), the Fedora package will receive updates. No need to compile your own development version of Python, just install it and have it up to date. New features will be added until the first beta planned for mid May.
## Test your projects with Python 3.9
Run the *python3.9* command to use Python 3.9 or create virtual environments with the [builtin *venv* module, tox](https://developer.fedoraproject.org/tech/languages/python/multiple-pythons.html) or with [pipenv](https://fedoramagazine.org/install-pipenv-fedora/) and [poetry](https://python-poetry.org/). For example:
```
$ git clone https://github.com/benjaminp/six.git
Cloning into 'six'...
$ cd six/
$ tox -e py39
py39 run-test: commands[0] | python -m pytest -rfsxX
================== test session starts ===================
platform linux -- Python 3.9.0a5, pytest-5.4.1, py-1.8.1, pluggy-0.13.1
collected 200 items
test_six.py ...................................... [ 19%]
.................................................. [ 44%]
.................................................. [ 69%]
.................................................. [ 94%]
............ [100%]
================== 200 passed in 0.43s ===================
________________________ summary _________________________
py39: commands succeeded
congratulations :)
```
## What’s new in Python 3.9
So far, the first five alphas were released, [more features will come](https://docs.python.org/3.9/whatsnew/3.9.html) until the first beta. You can however already try out the new [dictionary merge & update operators](https://www.python.org/dev/peps/pep-0584/):
```
$ python3.9
Python 3.9.0a5 (default, Mar 24 2020, 00:00:00)
[GCC 10.0.1 20200311 (Red Hat 10.0.1-0.9)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> d = {'spam': 1, 'eggs': 2, 'cheese': 3}
>>> e = {'cheese': 'cheddar', 'aardvark': 'Ethel'}
>>> d | e
{'spam': 1, 'eggs': 2, 'cheese': 'cheddar', 'aardvark': 'Ethel'}
>>> e | d
{'cheese': 3, 'aardvark': 'Ethel', 'spam': 1, 'eggs': 2}
>>> d |= e
>>> d
{'spam': 1, 'eggs': 2, 'cheese': 'cheddar', 'aardvark': 'Ethel'}
```
And stay tuned for [Python 3.9 as *python3* in Fedora 33](https://fedoraproject.org/wiki/Changes/Python3.9)!