在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。

包是一个有层次的文件目录结构,它定义了由n个模块或n个子包组成的python应用程序执行环境。通俗一点:包是一个含__init__.py文件、模块文件和其他子包的目录。

模块的创建比较简单,直接创建一个.py文件即可。创建包需要创建一个包含__inint__.py文件的目录(python 3.3版本以后,即便没有这个inint.py文件也可以)。

(一) 模块和包的基本信息

<1> 名称信息

模块名称就是不包含.py后缀的模块文件名称。例如有一个模块文件为test.py,该模块名称即为test

包名称就是该包文件目录的名称。

<2> 查看模块和包的文件路径

使用__file__内置属性来进行查看,如需要查看标准模块os的路径,可以使用下面的命令:

1
os.__file__

<3> 查看模块的接口内容

一种方法是查看模块的源码,如使用的是 PyCharm 这一 IDE 时,可以用Ctrl + 鼠标点击模块文件的方式打开源码,进行查看。另一种方法是,使用内置方法dir()来进行查看。

1
print(dir(os))

(二) 检索路径

<1> 查看当前检索路径

将按照优先级顺序,打印模块和包的检索路径。

1
2
import sys
print(sys.path)

<2> 修改检索路径

从上面可以看到,sys.path保存的路径是一个列表形式。因此,能够使用append方法添加新的路径。

1
2
import sys
sys.path.append("path/to/your/packages")

(三) 导入模块

当第一次导入模块的时候,会自动执行一次模块。

第一种方式,使用import导入,用 as 添加别名。

1
2
3
4
5
# 导入包
import Package as p

# 导入包/模块
import Package.Module as m

第二种方式,使用from Packages import *

两种方式在调用包和模块资源的时候存在区别,一般为了避免命名空间出现混乱,建议使用第一种方式进行导入。

(四) 三方包和模块的安装

对于单一文件的模块,只需要将其拷贝到sys.path包含的路径中即可使用。对于多文件甚至需要三方库依赖的包或模块,则需要使用特定的方式进行安装。

<1> 本地安装

将模块或包的文件下载到本地进行安装,由于历史原因,这些文件可能为.egg或者.whl后缀形式。

其中.egg是setuptools项目引入的模式,需要先安装setuptools,然后以该三方库的easy_install工具进行安装。

.whl本质是一个zip压缩格式,它的引入是为了取代.egg。如果所下载的.whl是由distutils项目打包的,则可以直接安装(这是由于distutils是python官方项目,被引入了标准库中),而该.whl是由setuptools打包的,则需要先安装setuptools,再进行安装。

比如,使用easy_install安装.egg文件:

1
easy_install xxx.egg

又比如,使用pip安装.whl文件:

1
pip install xxx.whl

在某些时候,下载的一个安装包,解压缩后,存在一个setup.py文件,则可以如下安装:

1
python setup.py install

需要注意的是,尽管这里所说是本地安装,然而所安装的包往往会存在依赖,而这些依赖的文件并没有被包含在所下载的文件中,只是注明了依赖关系而已。所以需要网络,自动下载。

<2> 在线安装

对应本地安装,在线安装也可以使用easy_installpip两种方式,这里介绍比较常用的pip方式。

  • 使用形式
1
pip install package_name
  • 更换安装源

默认的安装源为python官方,但由于这个服务器在国外,所以导致网速较慢。因此,可以选择国内的一些镜像安装源。

清华:https://pypi.tuna.tsinghua.edu.cn/simple
豆瓣:http://pypi.douban.com/simple/

一次性修改安装源:

1
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name

永久修改安装源(Windows系统):

  • 接在系统盘下,user目录中,创建一个pip目录,如:C:\Users\xx\pip;
  • 在新建的目录下,创建一个名为pip.ini的文件,内容如下:
1
2
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

永久修改安装源(Linux系统):

  • 在当前用户的目录下创建.pip文件夹
  • 然后在该目录下创建一个名为pip.conf的文件,内容如下:
1
2
3
[global]
trusted-host = pypi.douban.com
index-url = http://pypi.douban.com/simple