2017-04-27 106 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' 
相關問題