如何获取入口模块在python中的位置?

How do I get the location of the entry module in python?

我知道我可以使用__file__os.path.*来找出当前模块的路径。入口模块呢?

我正在尝试根据主机名从模块中将 ini 文件加载到 ConfigParser 中,但我希望它相对于入口程序集,而不一定是工作目录。这可能吗?

如果入口模块是指程序的入口点,这通常是sys.argv[0]。所以你可以这样做:

示例:

import os
import sys


def main():
    basedir = os.path.dirname(sys.argv[0])
    print "base directory: {0:s}".format(basedir)


if __name__ == "__main__":
    main()