DEV Community

Cover image for Determining Python Version using the sys Library
≀Paulo Portela
≀Paulo Portela

Posted on • Edited on

Determining Python Version using the sys Library

Introduction

The sys module in Python provides access to system-specific parameters and functions. One of its functionalities is to retrieve information about the Python interpreter itself, including the version currently being used. This information can be helpful for various purposes, such as:

  • Ensuring compatibility: Verifying compatibility with specific code or libraries that require a particular Python version.
  • Debugging issues: Identifying issues that might arise due to version-specific behaviour.
  • Writing adaptable code: Creating code that adapts to different Python versions.

Topics:

  • Determining Python Version:
    • Using sys.version
    • Using sys.version_info
  • Checking for Specific Version or Higher:
    • Using conditional statements with sys.version_info
  • Additional Considerations:
    • Choosing between sys.version and sys.version_info
    • Output format variations

Determining Python Version

There are two primary ways to obtain the Python version using the sys module:

  1. Using sys.version

This attribute returns a string representation of the Python version, including the major, minor, micro, release level, and serial number.

import sys

print("Python version:", sys.version)
Enter fullscreen mode Exit fullscreen mode

Output:

Python version: 3.12.2 (v3.12.2:6abddd9f6a, Feb  6 2024, 17:02:06) [Clang 13.0.0 (clang-1300.0.29.30)]
Enter fullscreen mode Exit fullscreen mode
  1. Using sys.version_info

This attribute provides a named tuple containing detailed information about the Python version. Each element within the tuple corresponds to a specific aspect of the version:

  • major: Major version number (e.g., 3 for Python 3)
  • minor: Minor version number
  • micro: Micro version number
  • releaselevel: Release level (e.g., 'final', 'beta')
  • serial: Serial number
import sys

print("Python version info:", sys.version_info)
Enter fullscreen mode Exit fullscreen mode

Output:

Python version info: sys.version_info(major=3, minor=12, micro=2, releaselevel='final', serial=0)
Enter fullscreen mode Exit fullscreen mode

Checking for Specific Version or Higher

You can use conditional statements with sys.version_info to check if the current Python version is equal to or higher than a specific version. This can be useful for ensuring compatibility with libraries or code that require a minimum version.

import sys

# Check if Python version is 3.5 or higher
if sys.version_info >= (3, 5):
    print("Python version is 3.5 or higher")
else:
    print("Python version is lower than 3.5")
Enter fullscreen mode Exit fullscreen mode

Output:

Python version is 3.5 or higher
Enter fullscreen mode Exit fullscreen mode

Additional Considerations

  • Choosing between sys.version and sys.version_info:

    • Use sys.version for a simple string representation of the version.
    • Use sys.version_info for granular access to individual version components for comparisons or conditional statements.
  • Output format variations:

    • The output format of sys.version might vary slightly depending on the Python implementation and platform.

Conclusion

The sys module provides a convenient way to determine the Python version being used within your program. This information can be valuable for ensuring compatibility, debugging, and writing adaptable code. By understanding the different methods offered by sys, you can effectively retrieve the necessary version details and perform checks based on specific version requirements for your Python development tasks.

Top comments (0)