Home > Net >  What is the replacement for distutils.util.get_platform()?
What is the replacement for distutils.util.get_platform()?

Time:03-30

Apparently, Python 3.10 / 3.12 is going to deprecate / remove distutils.

Unfortunately, I have not been able to find a replacement for the one and only function I am using from it; distutils.util.get_platform(). What is the replacement for this?

Note that platform is NOT an answer. I need a function that returns the complete string that is used when building a binary wheel¹, e.g. macosx-12-x86_64. Note particularly that there appears to be platform-specific logic embedded in this (e.g. the only other way I know to get the macos version is with a macos-specific API).

(¹ As noted in a comment, distutils.util.get_platform() is, strictly speaking, not that function. However, PEP 425 specifies that "the platform tag is simply distutils.util.get_platform() with all hyphens - and periods . replaced with underscore _." Ergo, it is straight-forward and platform-agnostic to derive the tag from distutils.util.get_platform(). An acceptable answer may therefore give an approved, public API which produces the platform tag directly, or a compatible replacement for distutils.util.get_platform().)

CodePudding user response:

For your use-case, sysconfig has a replacement

import sysconfig
sysconfig.get_platform()

This is what the wheel project itself used as a replacement for distutils.util.get_platform() when removing distutils from the code in Replaced all uses of distutils with setuptools #428.

  • Related