(1) 一个 Python 脚本可以单独运行,也可以导入到另一个脚本中运行,当脚本被导入运行时,我们称其为模块
(2) 所有的 .py 文件都可以作为一个模块导入,模块名与脚本的文件名相同,例如有一个 hello.py 文件,我们在另一个脚本用 import hello 来导入
(3) Python 有很多内置的模块,比如 sys,os,urllib 等,我们可以通过 sys.path 来查看模块都存放在哪些地方,我们也可以自行添加一个目录来存放模块
(4) Python的模块可以按目录组织为包,也就是说我们创建一个目录,这个目录下包含多个Python脚本,这个目录就是一个包
(5) 如果我们要创建一个包,那么需要先创建一个目录,然后该目录下创建一个 __init__.py 文件,用来标识这个目录是一个包,最后再根据需要存放脚本文件
(6) 如果我们要使用包下面的模块,可以通过 import 包名.模块名 来调用,也可以通过 from 包名 import 模块名 来调用
In [10]: import sys In [11]: sys.path # 如果我们 import 一个模块,会在 sys.path 列出的路径中依次查找这个模块的脚本文件,如果找不到就会抛出异常 Out[11]: ['', # 第一个是空的,表示在当前目录中查找模块的脚本文件 '/usr/bin', '/usr/lib/python2.7/site-packages/argparse-1.4.0-py2.7.egg', '/usr/lib/python2.7/site-packages/cloud_init-0.7.9-py2.7.egg', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', ......]
有两种方法可以添加一个目录到 sys.path:
In [1]: import sys In [2]: sys.path.append('/tmp') # 第一种方法是直接通过append()方法来添加
[root@localhost ~]$ echo "export PYTHONPATH=/tmp" >> /root/.bashrc # 第二种方法是定义PYTHONPATH到/root/.bashrc文件 [root@localhost ~]$ source /root/.bashrc