Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python 3.12 #13072

Closed
2 tasks done
johnnynunez opened this issue Sep 7, 2023 · 13 comments
Closed
2 tasks done

Python 3.12 #13072

johnnynunez opened this issue Sep 7, 2023 · 13 comments
Labels
off-topic not related to project, discussion is spam, or is otherwise nonsensical

Comments

@johnnynunez
Copy link
Contributor

Checklist

  • I added a descriptive title
  • I searched open requests and couldn't find a duplicate

What is the idea?

3.12 Python support

Why is this needed?

Could Python 3.12 Enhance ONNX's Multithreading Capabilities?

The official release of Python 3.12 is fast approaching, scheduled for October 2, 2023. What heightens my anticipation even more is Python 3.12's potential to significantly improve ONNX's multithreading performance.

For a considerable amount of time, Python's Global Interpreter Lock (GIL) has acted as an obstacle to efficient multithreading, particularly in CPU-intensive tasks such as deep learning through ONNX. However, Python 3.12 is set to debut a revolutionary feature: PEP 684, otherwise known as A Per-Interpreter GIL.

Why is this significant? ONNXRuntime, the core engine for executing ONNX deep learning models, is largely dependent on CPU resources. With the introduction of Python 3.12's per-interpreter GIL, there's an optimistic outlook for fully leveraging multi-core processors, thereby unleashing ONNX's untapped potential in deep learning applications.

As Python 3.12 is about to make its significant debut, it provides an ideal moment for me to re-engage with ONNX's multithreading capabilities, invigorated by these promising developments.

Keep an eye out for the upcoming release and join me in exploring the compelling opportunities that lie at the crossroads of ONNX and Python 3.12.

What should happen?

Support 3.12 ASAP to create conda environments

Additional Context

No response

@johnnynunez johnnynunez added the type::feature request for a new feature or capability label Sep 7, 2023
@cbouss
Copy link

cbouss commented Sep 8, 2023

Hi Johnny,

Thank you for reaching out. This year Anaconda introduced a preview channel featuring Python-3.12-compatible packages.

Please note that while these packages provide a sneak peek into the upcoming release, functionality may vary, and availability on all architectures may be limited. Some packages may be in beta or release candidate versions. Currently, the channel includes for all architectures Python 3.12.0 RC2, pip, setuptools, certifi, and cython. Additional packages have also been uploaded for linux-64.

If you’re eager to get a head start with Python 3.12, simply run the following command to install it from the preview channel:

conda create -n python-312-preview -c ad-testing/label/py312 python

@travishathaway travishathaway added off-topic not related to project, discussion is spam, or is otherwise nonsensical and removed type::feature request for a new feature or capability labels Sep 11, 2023
@travishathaway
Copy link
Contributor

Hi @johnnynunez,

We appreciate you reaching out to us, but unfortunately this is not the correct place to do so. For issues related to individual packages on the Anaconda defaults channel, please open an issue at this project: https://github.com/ContinuumIO/anaconda-issues/

I'll be closing this issue now.

@makslevental
Copy link

If you’re eager to get a head start with Python 3.12, simply run the following command to install it from the preview channel:

conda create -n python-312-preview -c ad-testing/label/py312 python

where is this channel? this command no longer works.

@aaravind100
Copy link

I came here looking for the same.

@makslevental 3.12 is available in anaconda channel.
something like conda create -n py312 python=3.12 or conda create -c anaconda -n py312 python=3.12 should work

@johnnynunez
Copy link
Contributor Author

how fast this time, although it is only a 5% improvement over python 3.11. The previous version was a significant improvement.

@jezdez
Copy link
Member

jezdez commented Oct 3, 2023

A reminder that the actual Python package is only the start, and the build-out of Python 3.12 compatible packages on Anaconda's main channel has only started.

@Tunneller
Copy link

Tunneller commented Nov 2, 2023

If I do the early release idea for 3_12 and then type "pip", then I get DLL load failed while importing _ctypes: The specified module could not be found.

@ubaldot
Copy link

ubaldot commented Dec 13, 2023

Not sure it is related but when I try to conda install conda-build I get:

│  └─ conda-build [3.21.4|3.21.5|...|3.28.1] conflicts with any installable versions previously reported;
└─ python 3.12**  is not installable because there are no viable options
   ├─ python 3.12.0 would require
   │  └─ python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported;
   ├─ python 3.12.0rc3 would require
   │  └─ _python_rc, which does not exist (perhaps a missing channel);
   └─ python 3.12.0 conflicts with any installable versions previously reported.

working with conda 23.7.4 (I also run conda update --name base --channel defaults --yes condaand it says I am using the latest version)

@matthewacarson
Copy link

@aaravind100

something like conda create -n py312 python=3.12 or conda create -c anaconda -n py312 python=3.12 should work

Is there any way to install this to the base environment? I'm a bit short on disk space, and creating a new environment just to update python takes up too much space.

@kenodegard
Copy link
Contributor

@matthewacarson you can always try to update the Python (or any package for that matter) installed into your base environment by explicitly specifying the version you want:

conda install -n base python=3.12

Warning

  1. this may not necessarily work depending on what other packages are installed in your base environment
  2. upgrading your Python version in your base environment has been known to break conda so proceed at your own risk and don't be surprised if you need to reinstall

@ispanos
Copy link

ispanos commented Apr 17, 2024

I'm a bit short on disk space, and creating a new environment just to update python takes up too much space.

I have the opposite issue. I just installed anaconda3, mainly because it comes with almost all the packages I need. Since I'm new here, I don't want to touch with base yet.

conda create -n py312 python=3.12 -y installs just python.

Are there any meta-packages (or package groups) I could use, to install most of the packages I will need? E.g. "data-science" or "statistics" packages.

Since I have space, I would be willing to re-install all the packages in base (those available for 3.12) in a new environment.

@cbouss
Copy link

cbouss commented Apr 17, 2024

Hi @ispanos, the last anaconda metapackage also comes with a 3.12 variant.
You can create a 3.12 environment with conda create -n py312 anaconda=2024.02 python=3.12

@ispanos
Copy link

ispanos commented Apr 17, 2024

Hi @ispanos, the last anaconda metapackage also comes with a 3.12 variant.
You can create a 3.12 environment with conda create -n py312 anaconda=2024.02 python=3.12

Thank you very much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
off-topic not related to project, discussion is spam, or is otherwise nonsensical
Projects
Archived in project
Development

No branches or pull requests