Python 3.7

sysconfig - पायथन की कॉन्फ़िगरेशन जानकारी तक पहुँच प्रदान करें




python

sysconfig - पायथन की कॉन्फ़िगरेशन जानकारी तक पहुँच प्रदान करें

संस्करण 3.2 में नया।

स्रोत कोड: Lib/sysconfig.py

sysconfig मॉड्यूल, इंस्टॉलेशन पथों की सूची और वर्तमान प्लेटफ़ॉर्म के लिए प्रासंगिक कॉन्फ़िगरेशन चर जैसी पायथन की कॉन्फ़िगरेशन जानकारी तक पहुंच प्रदान करता है।

कॉन्फ़िगरेशन चर

एक पायथन वितरण में एक pyconfig.h और एक pyconfig.h हैडर फ़ाइल होती है जो कि pyconfig.h का उपयोग करके संकलित दोनों पायथन बाइनरी को बनाने के लिए आवश्यक है और तृतीय-पक्ष सी एक्सटेंशन।

sysconfig इन फ़ाइलों में पाए जाने वाले सभी चर को एक शब्दकोश में get_config_vars() या get_config_var() का उपयोग करके एक्सेस किया जा सकता है।

ध्यान दें कि विंडोज पर, यह बहुत छोटा सेट है।

sysconfig.get_config_vars(*args)

बिना किसी तर्क के, वर्तमान प्लेटफ़ॉर्म के लिए प्रासंगिक सभी कॉन्फ़िगरेशन चर का एक शब्दकोश लौटाएं।

तर्कों के साथ, कॉन्फ़िगरेशन चर शब्दकोश में प्रत्येक तर्क को देखने से उत्पन्न मूल्यों की एक सूची लौटाएं।

प्रत्येक तर्क के लिए, यदि मान नहीं मिला है, तो None वापस न करें।

sysconfig.get_config_var(name)

किसी एकल चर नाम का मान लौटाएं। get_config_vars().get(name) बराबर get_config_vars().get(name)

यदि नाम नहीं मिला है, तो None लौटाएं।

उपयोग का उदाहरण:

>>> import sysconfig
>>> sysconfig.get_config_var('Py_ENABLE_SHARED')
0
>>> sysconfig.get_config_var('LIBDIR')
'/usr/local/lib'
>>> sysconfig.get_config_vars('AR', 'CXX')
['ar', 'g++']

स्थापना पथ

पायथन एक इंस्टॉलेशन स्कीम का उपयोग करता है जो प्लेटफ़ॉर्म पर और इंस्टॉलेशन विकल्पों के आधार पर भिन्न होता है। ये स्कीम os.name द्वारा लौटाए गए मूल्य के आधार पर विशिष्ट पहचानकर्ताओं के तहत sysconfig में संग्रहीत हैं।

हर नया घटक जो डिस्टुटिल्स या डिस्टुटिल्स-आधारित सिस्टम का उपयोग करके स्थापित किया गया है, सही फ़ाइल में इसकी फ़ाइल को कॉपी करने के लिए उसी योजना का पालन करेगा।

पायथन वर्तमान में सात योजनाओं का समर्थन करता है:

  • posix_prefix : Posix प्लेटफ़ॉर्म जैसे Linux या Mac OS X के लिए स्कीम। यह डिफ़ॉल्ट स्कीम है जिसका इस्तेमाल पायथन या किसी कंपोनेंट को इंस्टॉल करने पर किया जाता है।
  • पॉज़िक्स_होम : पॉज़िक्स प्लेटफ़ॉर्म के लिए स्कीम जिसका इस्तेमाल किसी होम ऑप्शन को इंस्टॉलेशन के समय किया जाता है। इस योजना का उपयोग तब किया जाता है जब किसी विशिष्ट घर उपसर्ग के साथ डिस्टुटिल्स के माध्यम से एक घटक स्थापित किया जाता है।
  • पॉज़िक्स_यूज़र : पॉसिक्स प्लेटफार्मों के लिए योजना जब एक घटक डिस्टुटिल्स के माध्यम से स्थापित किया जाता है और उपयोगकर्ता विकल्प का उपयोग किया जाता है। यह योजना उपयोगकर्ता होम डायरेक्टरी के तहत स्थित रास्तों को परिभाषित करती है।
  • nt : Windows जैसे NT प्लेटफ़ॉर्म के लिए योजना।
  • nt_user : NT प्लेटफ़ॉर्म के लिए योजना, जब उपयोगकर्ता विकल्प का उपयोग किया जाता है।

प्रत्येक योजना स्वयं पथों की एक श्रृंखला से बनी होती है और प्रत्येक पथ का एक विशिष्ट पहचानकर्ता होता है। पायथन वर्तमान में आठ रास्तों का उपयोग करता है:

  • stdlib : मानक पायथन लाइब्रेरी फ़ाइलों वाली निर्देशिका, जो प्लेटफ़ॉर्म-विशिष्ट नहीं हैं।
  • प्लैटस्टडीलिब : निर्देशिका जिसमें मानक पायथन लाइब्रेरी फाइलें हैं जो प्लेटफ़ॉर्म-विशिष्ट हैं।
  • प्लैटलिब : साइट-विशिष्ट, प्लेटफ़ॉर्म-विशिष्ट फ़ाइलों के लिए निर्देशिका।
  • Purelib : साइट-विशिष्ट, गैर-प्लेटफ़ॉर्म-विशिष्ट फ़ाइलों के लिए निर्देशिका।
  • शामिल हैं : गैर-प्लेटफ़ॉर्म-विशिष्ट हेडर फ़ाइलों के लिए निर्देशिका।
  • प्लेटिनक्यूलिड : प्लेटफ़ॉर्म-विशिष्ट हेडर फ़ाइलों के लिए निर्देशिका।
  • स्क्रिप्ट : स्क्रिप्ट फ़ाइलों के लिए निर्देशिका।
  • डेटा : डेटा फ़ाइलों के लिए निर्देशिका।

sysconfig इन रास्तों को निर्धारित करने के लिए कुछ कार्य प्रदान करता है।

sysconfig.get_scheme_names()

वर्तमान में sysconfig में समर्थित सभी योजनाओं वाले टपल लौटें।

sysconfig.get_path_names()

वर्तमान में sysconfig में समर्थित सभी पथ नामों से युक्त एक टपल लौटें।

sysconfig.get_path(name[, scheme[, vars[, expand]]])

इंस्टॉलेशन स्कीम नामक स्कीम से पथ के नाम से संबंधित इंस्टॉलेशन पाथ लौटाएं।

नाम को get_path_names() द्वारा get_path_names() गई सूची से एक मूल्य होना चाहिए।

sysconfig प्रत्येक प्लेटफॉर्म के लिए प्रत्येक पथ नाम के समान संस्थापन पथों को संग्रहीत करता है, जिसमें चर का विस्तार किया जाना है। उदाहरण के लिए nt योजना के लिए stdlib पथ है: {base}/Lib

get_path() पथ का विस्तार करने के लिए get_config_vars() द्वारा लौटाए गए चर का उपयोग करेगा। सभी चर में प्रत्येक प्लेटफ़ॉर्म के लिए डिफ़ॉल्ट मान हैं, ताकि कोई इस फ़ंक्शन को कॉल कर सके और डिफ़ॉल्ट मान प्राप्त कर सके।

यदि योजना प्रदान की जाती है, तो उसे get_scheme_names() द्वारा लौटी सूची से एक मूल्य होना चाहिए। अन्यथा, वर्तमान प्लेटफ़ॉर्म के लिए डिफ़ॉल्ट योजना का उपयोग किया जाता है।

यदि var प्रदान किया गया है, तो यह वैरिएबल का एक शब्दकोश होना चाहिए जो get_config_vars() द्वारा शब्दकोश रिटर्न को अपडेट करेगा।

यदि विस्तार को False सेट किया जाता है, तो चर का उपयोग करके पथ का विस्तार नहीं किया जाएगा।

यदि नाम नहीं मिला है, तो None लौटाएं।

sysconfig.get_paths([scheme[, vars[, expand]]])

किसी इंस्टॉलेशन स्कीम से संबंधित सभी इंस्टॉलेशन पथों वाले शब्दकोश को लौटाएं अधिक जानकारी के लिए get_path() देखें।

यदि योजना प्रदान नहीं की गई है, तो वर्तमान प्लेटफ़ॉर्म के लिए डिफ़ॉल्ट योजना का उपयोग करेगा।

यदि var प्रदान किया गया है, तो यह वेरिएबल्स का एक शब्दकोश होना चाहिए जो पथों के विस्तार के लिए उपयोग किए जाने वाले शब्दकोश को अपडेट करेगा।

यदि विस्तार को गलत पर सेट किया जाता है, तो पथों का विस्तार नहीं किया जाएगा।

यदि स्कीम कोई मौजूदा स्कीम नहीं है, तो get_paths() KeyError बढ़ाएगा।

अन्य कार्य

sysconfig.get_python_version()

स्ट्रिंग के रूप में MAJOR.MINOR पायथन संस्करण संख्या लौटाएं। '%d.%d' % sys.version_info[:2]

sysconfig.get_platform()

वर्तमान प्लेटफ़ॉर्म की पहचान करने वाली स्ट्रिंग लौटाएँ।

इसका उपयोग मुख्य रूप से प्लेटफ़ॉर्म-विशिष्ट बिल्ड निर्देशिका और प्लेटफ़ॉर्म-विशिष्ट निर्मित वितरण को अलग करने के लिए किया जाता है। आमतौर पर ओएस नाम और संस्करण और आर्किटेक्चर ('os.uname ()') द्वारा आपूर्ति की जाती है, हालांकि इसमें शामिल सटीक जानकारी ओएस पर निर्भर करती है; उदाहरण के लिए, लिनक्स पर, कर्नेल संस्करण विशेष रूप से महत्वपूर्ण नहीं है।

लौटाए गए मूल्यों के उदाहरण:

  • लिनक्स i586
  • linux- अल्फा ()
  • सोलारिस-2.6 sun4u

Windows एक लौटेगा:

  • win-amd64 (AMD64 पर 64 बिट विंडोज (उर्फ x86_64, Intel64, EM64T, आदि)
  • win32 (अन्य सभी - विशेष रूप से, sys.platform वापस आ गया है)

Mac OS X वापस आ सकता है:

  • MacOSX-10.6-पीपीसी
  • MacOSX-10.4-ppc64
  • MacOSX-10.3-i386
  • MacOSX-10.4 वसा

अन्य गैर-POSIX प्लेटफार्मों के लिए, वर्तमान में केवल sys.platform लौटाता है।

sysconfig.is_python_build()

यदि True पायथन इंटरप्रेटर स्रोत से बनाया गया था और अपने निर्मित स्थान से चलाया जा रहा है, और न ही उदाहरण के रूप में रनिंग make install या बाइनरी इंस्टॉलर के माध्यम से स्थापित करने से उत्पन्न होने पर वापस लौटें।

sysconfig.parse_config_h(fp[, vars])

एक config.h -style फ़ाइल पार्स करें।

fp एक फाइल जैसा ऑब्जेक्ट है जो config.h -like फाइल की ओर इशारा करता है।

नाम / मान जोड़े वाला एक शब्दकोश लौटाया जाता है। यदि एक वैकल्पिक शब्दकोश को दूसरे तर्क के रूप में पारित किया जाता है, तो इसका उपयोग एक नए शब्दकोश के बजाय किया जाता है, और फ़ाइल में पढ़े गए मूल्यों के साथ अद्यतन किया जाता है।

sysconfig.get_config_h_filename()

pyconfig.h का पथ वापस करें।

sysconfig.get_makefile_filename()

Makefile की राह पर लौटें।

स्क्रिप्ट के रूप में sysconfig का उपयोग करना

आप पाइथन के -m विकल्प के साथ स्क्रिप्ट के रूप में sysconfig उपयोग कर सकते हैं:

$ python -m sysconfig
Platform: "macosx-10.4-i386"
Python version: "3.2"
Current installation scheme: "posix_prefix"

Paths:
        data = "/usr/local"
        include = "/Users/tarek/Dev/svn.python.org/py3k/Include"
        platinclude = "."
        platlib = "/usr/local/lib/python3.2/site-packages"
        platstdlib = "/usr/local/lib/python3.2"
        purelib = "/usr/local/lib/python3.2/site-packages"
        scripts = "/usr/local/bin"
        stdlib = "/usr/local/lib/python3.2"

Variables:
        AC_APPLE_UNIVERSAL_BUILD = "0"
        AIX_GENUINE_CPLUSPLUS = "0"
        AR = "ar"
        ARFLAGS = "rc"
        ...

यह कॉल मानक आउटपुट में get_platform() , get_python_version() , get_path() और get_config_vars() द्वारा get_platform() गई जानकारी को प्रिंट करेगा।