【背景】
在看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
