python包导入机制
包是指含有__init__.py
的文件夹,模块就是一个.py文件。
python的包和模块是先查找buil-in moudle
然后是sys.path
这个list里的所有路径。
- sys.path[0]是启动Python解释器的脚本所在路径
- 比如运行
python task/admin.py
,sys.path[0]是'/home/code/taskman/task'
- 启动脚本是符号链接时,
sys.path[0]
是实际文件所在路径,详见 - 如果启动的是python解释器,如idle,ipython等,sys.path[0]是
''
。
- 比如运行
- 如果sys.path[0]是
''
,这个值等于当前工作目录也就是os.getcwd()
的值,也就是linux的pwd的值,你可以用os.chdir
来改变工作路径。 - sys.path里余下的元素是python环境变量里的一些路径
还是分析之前的那个例子