05-模块和包的概念

发布时间 2023-12-15 14:19:20作者: zxinlog

模块和包

模块是python的源文件,即.py 文件。模块支持导入,一个模块可以导入其他系统提供或第三方模块,可以使用其中提供好的全局变量、函数等。若导入的模块名字过长,也可以使用 as 使用别名。

import 会导入一个模块中所有内容,如果只想使用部分内容,可使用 from 模块 import 部分 这种形式进行导入。每个模块都具备一个属性 __name__ 可以很方便的进行模块之间的测试,当执行当前文件时,__name__ 就是当前模块的名字。如果被其他模块导入,就是模块名字。

import request
import request as req
from request import xxx

if __name__ == '__main__':
    pass
	# 执行当前模块

包,是一个包含多个模块的目录。写了多个模块之后,放在一个目录下,将包发布给他人使用。包中具备一个__init__.py 的文件,在该文件中,可以指定对外界提供的模块。 外界import 包名,就可以使用包中向外提供的所有模块。

__init__.py

from . import xxx
from . import yyy

编译模块

编译模块包,通过 build ,生成一个build 目录。

python3 setup.py build

打包模块

打包模块通过 sdist 将模块包进行打包。

python3 setup.py sdist

setup.py

from distutils.cor import setup

setup(
	name="xxx",  # 包名
	version="",  # 版本
	description="", # 描述信息
	author="xxx", # 作者
	author_email="", # 邮箱
	url="xxx",		# 主页
	py_modules=(["", ""]) # 添加的modules
)

setup.py中添加的py_modules 需要在 __init__中向外提供。

安装模块

sudo python3 setup.py install 是用于安装模块的,模块经过打包之后会形成一个 tar.gz 的文件包。对其进行解压安装。

卸载模块

从安装目录下,将安装过的模块删除掉即可。

cd /usr/local/lib/python3.xx/dist-packages/
sudo rm -rf xxx 包名

pip

pip 是python安装三方模块的一个官方工具,一些听过或者需要使用的模块可以直接使用pip进行下载。

安装pip,在windows平台下安装python的时候可以勾选。

在ubuntu平台,通过 apt 下载安装pip

sudo apt install pip

因为python3的原因,所以pip有可能以pip3的形式调用。

sudo apt install pip3-python

通过pip下载模块

sudo pip3 install request
sudo pip3 uninstall request

pip默认使用官方的安装源,为了更快的下载速度,可修改pip的下载源为国内。

在~/.pip 目录下,创建 pip.conf 文件。
[global]
timeout=6000
index-url=http://pypi.douban.com/simple
trusted-host=pypi.douban.com

windows下如果修改安装源,通过C:\Users\Administrator\AppData\Roaming\pip下创建 pip.ini 文件。

[global]
timeout = 6000
index-url = http://pypi.douban.com/simple
trusted-host = pypi.douban.com

总结:

总体而言,python中的每个文件都是按照模块的概念进行划分,一个源文件就是一个模块,多个模块在一起的目录称之为包。发布项目也就是发布包。发布包就需要对项目进行打包。(目前我也不太理解为什么需要对项目进行编译build),一个包中,通过__init__.py 文件中,可以声明哪些模块对外界提供,setup.py 是和包同级目录的,不在包内,通过配置setup.py,就可以进行如:编译、打包、安装 等工作。具体的命令:

sudo python3 setup.py build
sudo python3 setup.py sdist
sudo python3 setup.py install

既然有了模块的概念,那么就可以去其他平台、网站去下载三方包,三方模块供自己使用。python官方提供了下载器,可以下载三方模块。使用pip,pip需要自行下载。总结这里只概括ubuntu下的内容,下载pip之后,通过pip下载/卸载 模块。

sudo apt install pip
pip3 install request
pip3 uninstall request

pip默认是官方的下载源,切换成国内,需要在家目录下创建 .pip 目录,并创建文件 pip.conf

~/.pip/pip.conf :
[global]
timeout = 6000
index-url = http://pypi.douban.com/simple
trusted-host = pypi.douban.com

之后就可以利用更多的模块、包进行创造。