从命令行运行包时的相对导入

时间:2014-12-02 15:29:00

标签: python

我在python包中有一个__main__.py文件,代码如下:

from __future__ import absolute_import

import sys

if __package__ == '':
    import os
    path = os.path.dirname(os.path.dirname(__file__))
    sys.path.insert(0, path)

import packageName

if __name__ == '__main__':
    sys.exit(packageName.main())

我的问题是:

  1. 是否需要if __package__ == '':? PEP 366指出:

      

    当主模块由其文件名指定时,__package__属性将设置为无。

    根据我的理解,__ main__.py将始终为__name__ == '__main__'

  2. 因此,也不需要行if __name__ == '__main__':

  3. 其他一些信息:

    .main()文件中存在__init__.py函数。这两个文件都位于名为packageName的文件夹中。该包应该可以从CL或其他任意Python模块调用。

0 个答案:

没有答案