如何获取模块位置

Bun*_*bit 5 python

当我导入模块使用

import module_name
Run Code Online (Sandbox Code Playgroud)

是否可以看到我的硬盘中该模块的位置?

kha*_*hik 10

值得一提的是,包具有__file__指向的属性__init__.py,它们也__path__指向包目录.所以你可以使用hasattr(module_name, '__path__') and module_name.__path__[0] or module_name.__file__.

示例(在REPL中):

import socket, SOAPpy # SOAPpy is a package
socket.__file__
# .../python2.5/socket.pyc
socket.__path__
# AttributeError: 'module' object has no attribute '__path__'
SOAPpy.__file__
# .../2.5/site-packages/SOAPpy/__init__.pyc
SOAPpy.__path__
# ['.../2.5/site-packages/SOAPpy']
Run Code Online (Sandbox Code Playgroud)