模块的实际文件在哪里?

时间:2017-04-27 08:57:42

标签: python

我显然安装了多个版本的模块,我试图弄清楚文件的位置,因为其中只有一个是来自包管理而我想删除另一个。

有没有一种简单的方法可以让Python在导入后找到模块的位置?

2 个答案:

答案 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'