我得到的模块名称包含os.path.isfile
的声明。 Jedi lib给了我genericpath
(没有文件路径)。现在我想获得这个genericpath
模块的PY文件的完整文件名。例如。 “C:\ Py27 \ LIB \ genericpath.py”。我该怎么做?绝地不能这样做?
答案 0 :(得分:8)
您可以查看__file__
:
>>> import genericpath
>>> genericpath.__file__
'/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/genericpath.pyc'
答案 1 :(得分:5)
当__file__
不起作用时,请按照正确的方式使用inspect:
>>> import somemodule
>>> import inspect
>>> inspect.getfile(somemodule)
'/usr/lib64/python2.7/somemodule.pyc'
答案 2 :(得分:3)
像这样:
>>> import re
>>> re.__file__
'/usr/lib/python2.7/re.pyc'
对于不属于Python核心的软件包,您还可以使用__path__
:
>>> import requests
>>> requests.__file__
'/usr/local/lib/python2.7/dist-packages/requests-1.1.0-py2.7.egg/requests/__init__.pyc'
>>> requests.__path__
['/usr/local/lib/python2.7/dist-packages/requests-1.1.0-py2.7.egg/requests']