我们常常会使用别人写的包,假如我们使用的是Python3.4版本,安装在windows的C盘根目录下,那么外部的包一般放在:C:\Python34\Lib\sit-packages下,此目录下有以.py单独存在的文件,也有以文件夹存在的包,下面我们简单说一下Python中的模块和包,看完之后,也许会对这个目录看的更清楚一些。
一、模块
我们编写文件:a.py,放在C:\Python34\Lib\sit-packages下,里面写上一句代码为:
print(‘this is a‘)
之后我们就可以在我们的代码里面引用a.py文件,这里a.py就称为一个模块。在我们的工作目录编写文件:test.py,代码如下:
print(‘hello world‘)
运行后,显示结果为:
hello world
修改test.py代码为:
import a print(‘hello world‘)
运行后,显示结果为:
this is a
hello world
由于我们在代码里面增加了import a,所以会先执行a.py模块里面的代码。
这里补充一点,我们除了可以引用.py结尾的模块文件,也可以引用.pyc .pyo .pyd .so .dll后缀的模块文件,这几个文件有什么区别呢,网上找的一个回答,可以参考一下:
二、包
如果有许多个.py模块文件,我们可以把他们统一放在一个文件夹下,方便管理,在C:\Python34\Lib\sit-packages下,新建文件夹Test,文件夹Test下新建b.py c.py,分别写上代码:print(‘b‘)和print(‘c‘),修改test.py代码为:
import Test.b print(‘hello world‘)
运行后,显示结果为:
this is b
hello world
三、为包增加__init__.py文件
我们看到很多包里面都包含__init__.py文件,我们也在Test文件夹下新建此文件,输入代码:print(‘this is init‘),再次运行test.py,
运行后,显示结果为:
this is init
this is b
hello world
可见,增加__init__.py文件后,引入包后,会先运行__init__.py中代码
四、子包
如果要在包中建立子包,那么同样的方法,在Test文件夹下新建childTest文件夹,里面依然放进我们需要的.py文件即可。
现在再去打开C:\Python34\Lib\sit-packages,是不是感觉熟悉了一些?