如何使用“import”语句确定在Python中导入的文件?

时间:2010-03-30 04:02:18

标签: python import

如何使用“import”语句确定在Python中导入的文件?

我想确定我正在加载本地修改的.py文件的正确版本。基本上相当于POSIX环境中的“which”。

4 个答案:

答案 0 :(得分:11)

使用-v参数启动python以启用调试输出。然后,当您导入模块时,Python将打印输出模块的位置:

$ python -v
...
>>> import re
# /usr/lib/python2.6/re.pyc matches /usr/lib/python2.6/re.py
import re # precompiled from /usr/lib/python2.6/re.pyc
...

如果您还想查看Python搜索模块的其他地方,请添加第二个-v

$ python -v -v
...
>>> import re
# trying re.so
# trying remodule.so
# trying re.py
# trying re.pyc
# trying /usr/lib/python2.6/re.so
# trying /usr/lib/python2.6/remodule.so
# trying /usr/lib/python2.6/re.py
# /usr/lib/python2.6/re.pyc matches /usr/lib/python2.6/re.py
import re # precompiled from /usr/lib/python2.6/re.pyc
...

答案 1 :(得分:6)

查看其__file__属性。

答案 2 :(得分:2)

我明白了。导入的模块具有__file__字段,该字段是已加载的文件。将其与__import__相结合,我定义了一个函数:

which = lambda str : __import__(str).__file__

答案 3 :(得分:0)

在每个模块中放置一个显式版本标识符。

__version__ = "Some.version.String"

将这些内容放在您编写的每个模块中,无一例外。

import someModule
print someModule.__version__

这是(a)明确的,(b)易于管理。您还可以使用版本控制工具中的“关键字替换”在每次提交时为您实际填写版本字符串。