得到python某个模块的路径

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

path =os.path.dirname(amodule.__file__)

用__file__ 来获得脚本所在的路径是比较方便的,但这可能得到的是一个相对路径,比如在脚本test.py中写入:

#!/usr/bin/env python
print __file__

  • 按相对路径./test.py来执行,则打印得到的是相对路径,
  • 按绝对路径执行则得到的是绝对路径。

而按用户目录来执行(~/practice/test.py),则得到的也是绝对路径(~被展开)

所以为了得到绝对路径,我们需要 os.path.realpath(__file__)。

原文地址:https://www.cnblogs.com/chenjianhong/p/4144972.html