如何獲取以python導入的模塊的文件路徑。我正在使用Linux(如果它很重要)。例如:如果我在我的家目錄並導入一個模塊,它應該返回我的主目錄的完整路徑。獲取導入模塊的文件路徑
41
A
回答
6
這會給你的目錄中的模塊是:
import foo
os.path.dirname(foo.__file__)
52
模塊和包都具有其路徑信息的__file__
屬性。如果模塊是相對於當前工作目錄導入的,則可能需要獲取其絕對路徑。
import os.path
import my_module
print os.path.abspath(my_module.__file__)
9
我一直在使用這樣的:
import inspect
import os
class DummyClass: pass
print os.path.dirname(os.path.abspath(inspect.getsourcefile(DummyClass))
(編輯:這是一個「我在哪裏」的功能 - 它返回一個包含當前模塊的目錄,我如果不是很確定。那就是你想要的)。
5
要找到已經加載的模塊的負載路徑:我一直在使用這種方法
>>> import sys
>>> sys.modules['os']
<module 'os' from 'c:\Python26\lib\os.pyc'>
+0
或者簡單地說,就是'>>> os'。你依賴於模塊的'str()'表示。 – YvesgereY 2013-12-31 17:06:46
1
,這適用於非內置和內置模塊:
def showModulePath(module):
if (hasattr(module, '__name__') is False):
print 'Error: ' + str(module) + ' is not a module object.'
return None
moduleName = module.__name__
modulePath = None
if imp.is_builtin(moduleName):
modulePath = sys.modules[moduleName];
else:
modulePath = inspect.getsourcefile(module)
modulePath = '<module \'' + moduleName + '\' from \'' + modulePath + 'c\'>'
print modulePath
return modulePath
例如:
Utils.showModulePath(os)
Utils.showModulePath(cPickle)
結果:
<module 'os' from 'C:\SciSoft\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\os.pyc'>
<module 'cPickle' (built-in)>
0
我可以在這裏遲到,有些模塊會通過AttributeError
使用__file__
屬性來查找路徑。在這種情況下,可以使用__path__
來獲取模塊的路徑。
>>> import some_module
>>> somemodule.__path__
['/usr/lib64/python2.7/site-packages/somemodule']
0
嘗試:
幫助( 'XXX')
例如
>>> help(semanage)
Help on module semanage:
NAME
semanage
FILE
/usr/lib64/python2.7/site-packages/semanage.py
相關問題
- 1. Python:獲取導入模塊的腳本的文件路徑
- 2. 獲取模塊路由引入路徑
- 3. 從模塊中獲取導入腳本的路徑?
- 4. 獲取導入模塊代碼的路徑
- 5. 在編譯時獲取導入文件的文件路徑
- 6. 根據配置文件中的路徑導入模塊
- 7. 獲取模塊的py文件路徑的可靠方法
- 8. 導入python模塊不在路徑上
- 9. 從相對路徑導入模塊
- 10. 獲取python中模塊的路徑
- 11. Durandal,獲取當前模塊的路徑
- 12. 可以導入節點的路徑模塊使用從「路徑」
- 13. 獲取npm模塊文件夾的路徑(無主)
- 14. 限制導入到特定路徑,不限制導入模塊的路徑
- 15. Python是否將模塊路徑中的所有模塊導入?
- 16. 獲取文件的路徑
- 17. drupal 7模塊js ajax獲取文件路徑
- 18. 從其他ZF2模塊獲取路徑
- 19. Javascript - 獲取文件路徑放入HTA
- 20. 模塊導入錯誤在路徑上運行py.test與模塊
- 21. perl獲取模塊內部模塊的路徑?
- 22. 從Linux內核模塊的文件描述符中獲取文件名/路徑?
- 23. Rails的範圍:模塊文件路徑
- 24. Javascript獲取文件路徑
- 25. 獲取CSS文件路徑
- 26. html5獲取文件路徑
- 27. 獲取文件路徑
- 28. asp:FileUpload獲取文件路徑
- 29. 獲取文件夾路徑
- 30. Symfony獲取文件路徑
重複:http://stackoverflow.com/questions/247770/retrieving -python-module-path – 2009-04-08 11:52:53