python包和模块——创建和安装
在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在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 | import sys |
<2> 修改检索路径
从上面可以看到,sys.path
保存的路径是一个列表形式。因此,能够使用append
方法添加新的路径。
1 | import sys |
(三) 导入模块
当第一次导入模块的时候,会自动执行一次模块。
第一种方式,使用import导入,用 as 添加别名。
1 | # 导入包 |
第二种方式,使用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_install
和pip
两种方式,这里介绍比较常用的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 | [global] |
永久修改安装源(Linux系统):
- 在当前用户的目录下创建
.pip
文件夹 - 然后在该目录下创建一个名为
pip.conf
的文件,内容如下:
1 | [global] |
原文作者: Billy & Barney
原文链接: https://liangbilin.github.io/2020/01/18/Billy--Python包和模块—创建和安装/
版权声明: 转载请注明出处(必须保留作者署名及链接)