|
| 1 | +--- |
| 2 | +authors: |
| 3 | + - isuruf |
| 4 | +tags: [infrastructure] |
| 5 | +--- |
| 6 | + |
| 7 | +# Python 3.13 Release candidate builds on conda-forge |
| 8 | + |
| 9 | +conda-forge now supports Python 3.13 release candidates on conda. |
| 10 | +You can create a new environment with Python 3.13 by running the |
| 11 | +command: |
| 12 | + |
| 13 | + conda create -n py313 python=3.13 -c conda-forge/label/python_rc -c conda-forge |
| 14 | + |
| 15 | +<!-- truncate --> |
| 16 | + |
| 17 | +This will create a new environment with Python 3.13 with the global |
| 18 | +interpreter lock (GIL) enabled. A migration is underway that builds |
| 19 | +Python extensions like those included in `numpy` and `scipy` as conda packages. The migration |
| 20 | +is [55% complete](/status/migration/?name=python313) at the time of writing. Once the first final release of |
| 21 | +`python` 3.13 is available the `python_rc` label will not be needed |
| 22 | +anymore. |
| 23 | + |
| 24 | +New in this Python release is the `python-freethreading` build which |
| 25 | +removes the GIL and enables free threading. To install a `freethreading` |
| 26 | +build, you can do: |
| 27 | + |
| 28 | + conda create -n py313 python=3.13 python-freethreading -c conda-forge/label/python_rc -c conda-forge |
| 29 | + |
| 30 | +Analogous to this package we also have a metapackage to explicitly |
| 31 | +install the GIL variant: |
| 32 | + |
| 33 | + conda create -n py313 python=3.13 cpython-gil -c conda-forge/label/python_rc -c conda-forge |
| 34 | + |
| 35 | +Note that there are no conda packages for freethreading Python extensions yet and |
| 36 | +we hope to start a migration for freethreading extensions in the |
| 37 | +coming weeks. Till then, you should use `pip` to install a package |
| 38 | +unless the package and all its Python dependencies are `noarch` in which |
| 39 | +case conda installing the package will work. |
| 40 | + |
| 41 | +Another new feature of this release is the experimental just-in-time |
| 42 | +(JIT) compiler included in the Python interpreter. This interpreter is |
| 43 | +experimental, but can be used by setting the environment variable |
| 44 | + |
| 45 | + export PYTHON_JIT=1 |
| 46 | + |
| 47 | +You can also use the convenience conda package to set this environment |
| 48 | +variable for you: |
| 49 | + |
| 50 | + conda install python-jit |
| 51 | + |
| 52 | +Note that the JIT is available only for `x86_64` builds of python in |
| 53 | +conda. |
| 54 | + |
| 55 | +You can also use debug builds of Python on conda-forge for non-Windows |
| 56 | +systems by using the `conda-forge/label/python_debug` label. |
| 57 | + |
| 58 | +Any issues with python conda package itself can be reported at [`python-feedstock`](https://github.com/conda-forge/python-feedstock). |
| 59 | + |
| 60 | +### Acknowledgements |
| 61 | + |
| 62 | +Thanks to Uwe Korn ([@xhochy](https://github.com/xhochy)) for getting us started |
| 63 | +and for Jonathan Helmus ([@jjhelmus](https://github.com/jjhelmus)) for guidance. |
| 64 | +Also thanks to conda-forge/core and all the maintainers of feedstocks in conda-forge |
| 65 | +for the hard work in getting the Python 3.13 migration underway. |
0 commit comments