python tutorial पायथन में आयात किए बिना मॉड्यूल का मार्ग खोजें




python tutorial (3)

आप अपने दुभाषिया में इसे चलाने की कोशिश कर सकते हैं:

>>> import sys
>>> sys.modules['codecs'].__file__ # codecs is just an example
'/usr/lib/python2.7/codecs.pyc'

मैंने पहली बार इसे आयात करके एक मॉड्यूल का रास्ता खोजने के लिए कई दृष्टिकोण देखे हैं। मॉड्यूल आयात किए बिना ऐसा करने का एक तरीका है?


Python3 के लिए imp पदावनत है। Pkgutil का उपयोग करें (जैसा कि ऊपर देखा गया है) या Python importlib.util.find_spec लिए importlib.util.find_spec उपयोग importlib.util.find_spec :

>>> import importlib
>>> spec = importlib.util.find_spec("threading")
>>> spec.origin
'/usr/lib64/python3.6/threading.py'

pkgutil मॉड्यूल का उपयोग करना:

>>> import pkgutil
>>> package = pkgutil.get_loader("pip")
>>> package.filename
'/usr/local/lib/python2.6/dist-packages/pip-0.7.1-py2.6.egg/pip'
>>> package = pkgutil.get_loader("threading")
>>> package.filename
'/usr/lib/python2.6/threading.py'
>>> package = pkgutil.get_loader("sqlalchemy.orm")
>>> package.filename
'/usr/lib/pymodules/python2.6/sqlalchemy/orm'

मॉड्यूल का उपयोग:

>>> import imp
>>> imp.find_module('sqlalchemy')
(None, '/usr/lib/pymodules/python2.6/sqlalchemy', ('', '', 5))
>>> imp.find_module('pip')
(None, '/usr/local/lib/python2.6/dist-packages/pip-0.7.1-py2.6.egg/pip', ('', '', 5))
>>> imp.find_module('threading')
(<open file '/usr/lib/python2.6/threading.py', mode 'U' at 0x7fb708573db0>, '/usr/lib/python2.6/threading.py', ('.py', 'U', 1))

NB: छोटा सा भूत के साथ आप imp.find_module('sqlalchmy.orm') जैसा कुछ नहीं कर सकते





python