参考: http://www.cnblogs.com/linhaifeng/articles/6379069.html
1.模块是用来组织python代码的方法,而包用来组织模块。
2. 使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此, 我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突.
3.包:避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package).只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突 每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py 可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是 本目录名字。
4.每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。 通常__init__.py 文件为空,但是我们还可以为它增加其他的功能。 我们在导入一个包时,实际上是导入了它的__init__.py文件 。 这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入.
5.模块搜索路径, sys.path
可以查看
方法一:函数添加 1 import sys 2 查看sys.path 3 添加sys.path.append("c:\\") 方法二:修改环境变量 w用户可以修改系统环境变量PYTHONPATH 方法三:增加.pth文件,推荐! 在site-packages添加一个路径文件,如mypkpath.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称就是了。 1 windows c:\python27\site-packages # 我们的学员把pth文件直接放在c:\python27 # (或其他python安装目录)目录下测试也是有效的 # 2015.9.23 2 linux(ubuntu) /usr/local/lib/python2.7/dist-packages (note by shanql, 我是放在这个目录下有效的,所添加的目录一定要存在,不存在则会不成功) 2 linux(redhat) /usr/lib/python2.7/site-packages