linux下运行python文件导包问题_Python的包导入机制
Background
在Python的大型项目中,一般都会用到模块包来组织文件层次,其中当一个目录内含有__init__ . py文件时,就可以視该目录为一个模块包。
当在模块包中使用import语句的时候,不同的语法会导致不同的模块搜索导入方式,常见的导入方式如下:
绝对导入(absolute import)
显式相对导入(explicit relative import)
隐式相对导入(implicit relative import)
需要注意的是,这些导入方式都是对于模块包而言,对于一般的模块还是从sys.path搜索入手。
Prerequisite
Python脚本运行的方式?
Python脚本运行分为两种方式:一种是作为top level script运行,另一种则是作为被导入的包模块运行。
当使用python命令直接执行一个py文件的时候,该文件就是以top level script方式运行,此时文件的__name__属性则为__main__。
# test.py
print __name__
# output
__main__
当文件使用包模块的方式运行的时候,文件的__name__属性则为模块的路径(从top level script的目录开始),包模块的例子目录结构如下:
├── main.py
└── pac
├── __init__.py
└── moduleA.py
笔者将直接运行main.py文件,代码如下:
## main.py
f
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
