【背景】
在看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
from .dep import Depclass
ValueError: Attempted relative import in non-package
这个错误之前也遇到过
包含相对路径import 的python脚本不能直接运行,只能作为module被引用。
如果想运行的话,需要这样操作:
[root@typhoeus79 ice_test_m 20141024]# python2.7 -m test.__main__
Init Depclass