Python的__main__.py用法
【背景】
在看flower的时候看到__main__.py文件,不知道具体做什么用?
故先进行测试看看。
【测试代码】
测试代码目录结构如下:
1 2 3 4 5 | . `-- test |-- __init__.py |-- __main__.py |-- dep.py |
__init__.py为空,表示test是一个package
__main__.py内容如下:
1 2 3 4 5 6 7 8 9 | [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内容如下:
1 2 3 4 | [root@typhoeus79 ice_test_m 20141024 ] # more test/dep.py class Depclass( object ): def __init__( self ): print "Init Depclass" |
直接运行__main__.py的时候出现错误:
1 2 3 4 5 | [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被引用。
如果想运行的话,需要这样操作:
1 2 | [root@typhoeus79 ice_test_m 20141024]# python2.7 -m test.__main__ Init Depclass |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步