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

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM