2017-04-27 69 views
0

我显然已经安装了一个模块的多个版本,我试图找出文件的位置,因为只有其中一个来自软件包管理,我想删除其他文件。模块的实际文件在哪里?

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

回答

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

做的只是'打印module'它是一点点“优雅”并且仍然有用 'import os; print os'从'/usr/lib/python2.7/os.pyc'>'和'import sys;打印'

+1

。我希望你不介意我用这些编辑我的答案。 – cdarke

+0

好的建议,可能值得添加'print sys' print'' –

0

您可以导入模块后使用__file__

>>> import os 
>>> os.__file__ 
'/usr/lib/python2.7/os.pyc' 
相关问题