जब आप पायथन इंस्टॉल करते हैं, तो आपको पायथन पैकेज मैनेजर, `pip` भी मिलता है। आप पिप का उपयोग करके पायथन मॉड्यूल के संस्करण प्राप्त कर सकते हैं। यदि आप सभी इंस्टॉल किए गए पायथन मॉड्यूल को उनके संस्करण संख्या के साथ सूचीबद्ध करना चाहते हैं, तो निम्न कमांड का उपयोग करें:
कमांड लाइन से
$ pip freeze
आउटपुट:
asn1crypto==0.22.0
astroid==1.5.2
attrs==16.3.0
Automat==0.5.0
backports.functools-lru-cache==1.3
cffi==1.10.0
...
व्यक्तिगत रूप से संस्करण ढूंढें
Linux/macOS (grep):
$ pip freeze | grep PyMySQL
PyMySQL==0.7.11
Windows (findstr):
PS C:\> pip freeze | findstr PyMySql
PyMySQL==0.7.11
पिप लिस्ट (पिप ≥ 1.3)
$ pip list
asn1crypto (0.22.0)
astroid (1.5.2)
attrs (16.3.0)
...
पायथन स्क्रिप्ट के भीतर से
विधि 1: importlib.metadata (पायथन 3.8+)
import importlib.metadata
version = importlib.metadata.version('requests')
print(version) # '2.31.0'
विधि 2: pkg_resources (पुराना, धीमा)
import pkg_resources
version = pkg_resources.get_distribution('requests').version
print(version)
विधि 3: मॉड्यूल का __version__ एट्रिब्यूट
import requests
print(requests.__version__) # यदि उपलब्ध हो
import numpy
print(numpy.__version__)
नोट: सभी मॉड्यूल में `__version__` एट्रिब्यूट नहीं होता। `importlib.metadata` अधिक विश्वसनीय है।
फॉलबैक फ़ंक्शन (सभी संस्करण)
def get_package_version(package_name):
"""किसी भी पायथन संस्करण पर पैकेज संस्करण प्राप्त करें।"""
try:
import importlib.metadata
return importlib.metadata.version(package_name)
except (ImportError, ModuleNotFoundError):
try:
import pkg_resources
return pkg_resources.get_distribution(package_name).version
except Exception:
pass
# अंतिम उपाय: मॉड्यूल एट्रिब्यूट जांचें
try:
module = __import__(package_name)
return getattr(module, '__version__', None)
except ImportError:
return None
# उपयोग
print(get_package_version('requests'))
print(get_package_version('numpy'))
print(get_package_version('nonexistent')) # None
सारांश
| विधि | पायथन संस्करण | विश्वसनीयता | गति |
|---|---|---|---|
| importlib.metadata | 3.8+ | उच्च | तेज़ |
| pkg_resources | सभी | उच्च | धीमा |
| module.__version__ | सभी | कम (सभी में नहीं) | तेज़ |
| pip freeze / pip list | CLI | उच्च | N/A |