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