python如何能得到一个模块的路径
由于我还是小小菜鸟,所以有时很需要知道究竟python是从哪里把一个模块导入进来的:
import imp
print imp.find_module("MySQLdb")这个就能打印出这个模块的路径
>>> print imp.find_module('MySQLdb')
(None, 'C:\\Python27\\lib\\site-packages\\MySQLdb', ('', '', 5))
方法二:
1 | import a_module |
2 | print a_module.__file__ |
上述代码将范围 .pyc 文件被加载的路径,如果需要跨平台解决方案,可用下面代码:
1 | import os |
2 |
|
用__file__ 来获得脚本所在的路径是比较方便的,但这可能得到的是一个相对路径,比如在脚本test.py中写入:
#!/usr/bin/env python
print __file__- 按相对路径./test.py来执行,则打印得到的是相对路径,
- 按绝对路径执行则得到的是绝对路径。
而按用户目录来执行(~/practice/test.py),则得到的也是绝对路径(~被展开)
所以为了得到绝对路径,我们需要 os.path.realpath(__file__)。