1.概念
 模块:模块就是程序,每一个.py文件都是一个模块.
 命名空间:一般为模块名
 包:一组类型相同的模块组成的文件夹,创建包的步骤如下:
 1)创建一个文件夹,文件夹的名字即包的名字;
 2)在文件夹中创建一个__init__.py的模块,内容可以为空;
 3)将相关的模块放入文件夹中;
 
2.如何导入模块和包
 1)导入模块
 首先创建test.py模块
 #test.py
 def test1():
     print("\ntest1")
 
 def test2():
     print("\ntest2")
 
 在refer.py模块中调用test.py模块中的方法
 #refer.py
 import test
 test.test1()
 test.test2()
 输出如下:
 test1
 test2
 以上的调用中,test即为命名空间(也就是模块名),此时调用模块中的函数时必须加上命名空间;
 
 
2)导入模块中的函数
 在refer.py中导入test.py中的函数
 #refer.py
 from test import test1
 from test import test2
 test1()
 test2()
 输出如下:
 test1
 test2
 以上调用模块中的函数时不需要添加命名空间
 
 
3)导入包
 首先创建testpackage包,将test.py模块放入包中.此时refer.py的调用代码如下
 #refer.py
 import testpackage.test as tc
 tc.test1()
 tc.test2()
 输出:
 test1
 test2
 在调用模块时前面需要加上包名,另外使用了as将命名空间简化成了别名tc
 
 
3.包和模块的搜索路径
 首先看一下python的默认搜索路径
 >>> import sys
 >>> sys.path
 ['', 'D:\\python3.5.1\\Lib\\idlelib', 'D:\\python3.5.1\\python35.zip', 'D:\\python3.5.1\\DLLs', 'D:\\python3.5.1\\lib', 'D:\
 
 \python3.5.1', 'D:\\python3.5.1\\lib\\site-packages']
 以上的python的默认搜索路径,包括安装路径和当前项目所在的路径,前面创建的包和模块都是在当前项目所在路径下,因此能搜索到
 如果要添加路径
 >>> sys.path.append('E:\\python')
 >>> sys.path
 ['', 'D:\\python3.5.1\\Lib\\idlelib', 'D:\\python3.5.1\\python35.zip', 'D:\\python3.5.1\\DLLs', 'D:\\python3.5.1\\lib', 'D:\
 
 \python3.5.1', 'D:\\python3.5.1\\lib\\site-packages', 'E:\\python']
 则将模块和包放在E:\python,也能找到
 这种方法添加的路径,交互终端重启后会失效