python import 导入概述
在一个导入语句中的模块名起到两个作用:识别加载的外部文档,也会变成赋值给被载入模块的变量,模块定义的对象也会在执行时创建,就是在Import执行时,import会一次运行在目标文档中的语句从而建立其中的内容
程序第一次导入指定文件文件时执行的步骤:
- 找到模块文件
- 编译成位码(如果需要)
- 执行模块的代码来创建其所定义的对象
这三个步骤只在程序执行时,
模块第一次导入时才会进行,在这之后导入相同模块时,会跳过这三个步骤,而只是提取内存中已加载的模块对象
import 搜索路径
- 程序的主目录
hello i am coming
('fdadf', 'fasdfasd')
['d:\\Program Project\\Python Project', 'C:\\Windows\\system32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages']
包含的程序所在的目录 :d:\\Program Project\\Python Project'
- PYTHONPATH目录(如果已经进行了设置):python会从左至右搜索pythonpath环境变量设置中罗列出的所有目录,简而言之,pythonpath是设置包含Python程序文件的目录的列表,这些目录可以是用户定义的或平台特定的目录名
详细设置见:http://blog.csdn.net/fyh2003/article/details/6837624
因为Python会先搜索主目录,当导入的文件跨目录时,这个设置才显得非常重要
- 标准链接库目录
接着Python会自动搜索标准库模块安装在机器上的那些目录,因为这些一定会被搜索,所以不需要添加到pythonpath之中的
- 任何.pth文件的内容(如果存在的话)允许用户把有效的目录添加到模块搜索路径中去,也就是后缀名为.pth的文本文件中一行行地列出目录,可以把一个.path文件放置在Python安装目录的顶层(例如C:\Python27)来扩展模块搜索路径,此时可以扮演pythonpath的角色、
其他
- sys.path:是模块搜索的路径,Python在程序启动时进行配置,自动将pythonpath和.path文件的路径设置值合并到这个列表中,并设置第一项作为顶层文件的主目录
- Python中的第三方扩展,通常使用标准链接库中的distutils工具来自动安装,所以不需要路径设置,就可以使用它们的代码