2010-08-19 10 views
27

मैं अपने द्वारा उपयोग किए जाने वाले विशिष्ट कुछ मॉड्यूल का संस्करण संख्या प्राप्त करने का प्रयास कर रहा हूं। कुछ जो मैं एक चर में स्टोर कर सकते हैं।कोड के माध्यम से मुझे पाइथन मॉड्यूल का संस्करण संख्या कैसे प्राप्त हो सकता है?

+4

संबंधित: [जाँच हो रही है रनटाइम पर पायथन मॉड्यूल संस्करण] (http://stackoverflow.com/questions/710609/checking-python-module-version-at-runtime) –

उत्तर

21

मैट्स से सामान्यीकृत उत्तर, dir(YOURMODULE) करें और __version__, VERSION, या version देखें। __version__ जैसे अधिकांश मॉड्यूल लेकिन मुझे लगता है कि version.version

+5

बस ध्यान दें कि '__version__' नए कोड के लिए पसंदीदा मानक है, जैसा कि [PEP8] (http://www.python.org/dev/peps द्वारा अनुशंसित किया गया है)/स्फूर्ति-0008 /)। देखें [पायथन पैकेज में संस्करण एम्बेड करने का मानक तरीका?] (Http://stackoverflow.com/questions/458550/standard-way-to-embed-version-into-python-package) –

6

मुझे लगता है कि यह मॉड्यूल पर निर्भर करता है। उदाहरण के लिए, Django में एक VERSION वैरिएबल है जिसे आप django.VERSION से प्राप्त कर सकते हैं, sqlalchemy में __version__ वेरिएबल है जो आप sqlalchemy.__version__ से प्राप्त कर सकते हैं।

+0

Django भी 'django.get_version है () ', जो एक tuple के बजाय एक स्ट्रिंग देता है। जब संदेह में, 'डीआईआर (मॉड्यूल) '। – Seth

+0

या आप [निरीक्षण मॉड्यूल] (http://docs.python.org/library/inspect.html) से 'getmembers' फ़ंक्शन का उपयोग कर सकते हैं। –

+0

उपरोक्त काम भी नकली के लिए काम करता है। .get_distribution ("xxx") के साथ कोई भाग्य नहीं है। संस्करण() –

45

pkg_resources (setuptools का हिस्सा) का उपयोग करें। PyPI से स्थापित कुछ भी कम से कम एक संस्करण संख्या है। कोई अतिरिक्त पैकेज/मॉड्यूल की आवश्यकता नहीं है।

>>> import pkg_resources 
>>> pkg_resources.get_distribution("simplegist").version 
'0.3.2' 
0

कुछ मॉड्यूल (उदा। एज़ूर) __version__ स्ट्रिंग प्रदान नहीं करते हैं।

यदि पैकेज पाइप के साथ स्थापित किया गया था, तो निम्नलिखित कार्य करना चाहिए।

# say we want to look for the version of the "azure" module 
import pip 
for m in pip.get_installed_distributions(): 
    if m.project_name == 'azure': 
     print(m.version) 
संबंधित मुद्दे

 संबंधित मुद्दे