找到Python模块文件名

Pro*_*020 4 python python-2.7

我得到了包含声明的模块名称os.path.isfile.Jedi lib给了我genericpath(没有文件路径).现在我想用这个genericpath模块获得PY文件的完整文件名.例如"C:\ Py27\Lib\genericpath.py".我该怎么做?绝地不能这样做?

crs*_*s17 8

您可以检查以下值__file__:

>>> import genericpath
>>> genericpath.__file__
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/genericpath.pyc'
Run Code Online (Sandbox Code Playgroud)


Mic*_*per 7

如果__file__不起作用,请以正确的方式进行操作-使用inspect

>>> import somemodule
>>> import inspect
>>> inspect.getfile(somemodule)
'/usr/lib64/python2.7/somemodule.pyc'
Run Code Online (Sandbox Code Playgroud)


Bur*_*lid 5

像这样:

>>> import re
>>> re.__file__
'/usr/lib/python2.7/re.pyc'
Run Code Online (Sandbox Code Playgroud)

对于不属于 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']
Run Code Online (Sandbox Code Playgroud)

  • 请注意,``__path__`` 是不可靠的,因为它可以在运行时更改。它实际上是一条搜索路径,而不是一个位置。https://docs.python.org/2/tutorial/modules.html#packages-in-multiple-directories (3认同)