Python的__main__.py用法

【背景】

在看flower的时候看到__main__.py文件,不知道具体做什么用?

故先进行测试看看。

 

【测试代码】

测试代码目录结构如下:

.
`-- test
    |-- __init__.py
    |-- __main__.py
    |-- dep.py

__init__.py为空,表示test是一个package

__main__.py内容如下:

[root@typhoeus79 ice_test_m 20141024]# more test/__main__.py 
#!/usr/bin/env python2.7
#-*- coding:utf8 -*

from __future__ import absolute_import

from .dep import Depclass

adep = Depclass()

  

dep.py内容如下:

[root@typhoeus79 ice_test_m 20141024]# more test/dep.py
class Depclass(object):
    def __init__(self):
        print "Init Depclass"

  

直接运行__main__.py的时候出现错误:

[root@typhoeus79 ice_test_m 20141024]# ./test/__main__.py 
Traceback (most recent call last):
  File "./test/__main__.py", line 6, in <module>
    from .dep import Depclass
ValueError: Attempted relative import in non-package

  

这个错误之前也遇到过

http://i.cnblogs.com/EditPosts.aspx?postid=4030852

包含相对路径import 的python脚本不能直接运行,只能作为module被引用。

 

如果想运行的话,需要这样操作:

[root@typhoeus79 ice_test_m 20141024]# python2.7 -m test.__main__    
Init Depclass

  

posted @ 2014-10-24 11:17  小郭学路  阅读(8971)  评论(0编辑  收藏  举报