我显然安装了多个版本的模块,我试图弄清楚文件的位置,因为其中只有一个是来自包管理而我想删除另一个。
有没有一种简单的方法可以让Python在导入后找到模块的位置?
答案 0 :(得分:3)
如果模块不是内置的,你可以这样做:
import your_module
print(your_module.__file__)
试验:
>>> import os
>>> print(os.__file__)
L:\Python34\lib\os.py
如果模块是内置的,则会出现错误:
>>> import sys
>>> print(sys.__file__)
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
AttributeError: 'module' object has no attribute '__file__'
>>>
(使用__file__
检查模块是否具有hasattr
属性也是避免错误的选项; if hasattr(module_name, '__file__'):
)
还:直接打印模块:
>>> print(os)
<module 'os' from 'L:\\Python34\\lib\\os.py'>
答案 1 :(得分:0)
导入模块后可以使用__file__
:
>>> import os
>>> os.__file__
'/usr/lib/python2.7/os.pyc'