Pyhton模块和包相关知识总结


Posted in Python onMay 12, 2021

一、模块

每一个以扩展名 py 结尾额 Python 源代码文件都是一个模块模块名 同样也是一个标识符,需要符合标识符的命名规则在模块中定义的 全局变量、函数、类 都是提供给外接直接使用的工具 模块的两种导入方式

1)import 导入

import 模块名1,模块名2

import 模块名1
import 模块名2

导入之后

  • 通过 模块名. 使用 模块提供的工具——全局变量、函数、类

使用 as 指定模块的别名

import 模块名1 as 模块别名

注意:模块别名应该 符合 大驼峰命名法

2)from…import 导入

  • 如果希望从某一个模块中,导入 部分工具,就可以使用 from … import 的方式
  • import 模块名 是一次性把模块中 所有工具全部导入,并且通过 模块名/别名 访问
# 从模块 导入 某一个工具
from 模块1 import 工具名

导入之后

  •  不需要通过 模块名.
  • 可以直接使用 模块提供的工具——全局变量、函数、类

注意:
如果 两个模块,存在同名的函数,那么后导入模块的函数,会覆盖掉先导入的函数

  • 如果代码冲突,可以使用 as 关键 给其中一个模块起一个别名

from…import * (不推荐使用)

# 从模块 导入 所有工具
from 模块名1 import *

二、模块的搜索顺序

Python 的解释器在 导入模块时,会:

1.搜索 当前目录 指定模块名的文件,如果有就直接导入

2.如果没有,再搜索 系统目录

注意:在给文件起名时,不要和系统的模块文件 重名

Python 中每一个模块都有一个内置属性 __file__ 可以查看模块的 完整路径

三、使模块下方的测试代码在导入时不会执行

  • 在导入文件时,文件中所有没有任何缩进的代码 都会被执行一遍

__name__属性

  • __name__属性 可以做到,测试模块的代码只在测试情况下被运行,而在被导入时不会被执行
  • __name__ 是 Python 的一个内置属性,记录着一个字符串
  • 如果 是被其他文件导入的,__name__就是 模块名
  • 如果是当前执行的程序 __name__是 __main__

示例:

# 导入模块
# 定义全局变量
# 定义类
# 定义函数

# 在代码的最下方
def main():
	# ...
	pass

# 根据 __name__判断是否执行下方代码
if __name__ == '__main__':
	main()

四、包

  • 包是一个 包含多个模块的 特殊目录目录
  • 下有一个 特殊的文件 __init__.py
  • 使用 import 包名 可以一次性导入 包 中所有的模块

__init__.py

  • 要在外界使用 包 中的模块,需要在 __init__.py 中指定 对外界提供的模块列表
# 从 当前目录 导入 模块列表
from . import 模块名
from . import 模块名

例如:

Pyhton模块和包相关知识总结

五、发布模块

制作发布压缩包步骤

1)创建 setup.py

setup.py 的文件

from distutils.core import setup

setup(name="vvcat_package",  # 包名
		version="1.0", # 版本
		description="用来测试",  # 描述信息
		long_description="用来测试如何发布压缩包",  # 完整描述信息
		author="vvcat",  # 作者
		author_email="206647497@qq.com",  #作者邮箱
		url="https://blog.csdn.net/qq_44989881?t=1",  # 主页
		py_modules=["vvcat_package.test1",  
					"vvcat_package.test2"])  # 包中的模块

有关字典参数的详细信息,可以参阅官方网站:

https://docs.python.org/2/distutils/apiref.html

Pyhton模块和包相关知识总结

Pyhton模块和包相关知识总结

先cd到setup.py 所在的目录 ,通过 ls -l 命令 可以看到有以下几个文件

Pyhton模块和包相关知识总结

2)构建模块

python3 setup.py build

Pyhton模块和包相关知识总结

通过 tree命令可以看到当前目录结构
如果没有 tree 命令,可以通过以下操作,安装

sudo apt-get install tree

使用 tree命令 后会看到
使用 python3 setup.py build命令 生成的 build 文件夹中的内容

Pyhton模块和包相关知识总结

3)生成发布压缩包

python3 setup.py sdist

Pyhton模块和包相关知识总结
Pyhton模块和包相关知识总结

六、安装模块

Pyhton模块和包相关知识总结

tar -zxvf 包名-1.0.tar.gz

sudo python3 setup.py install

使用 tar -zxvf vvcat_package-1.0.tar.gz 命令后

Pyhton模块和包相关知识总结

会出现 vvcat_package-1.0文件夹

Pyhton模块和包相关知识总结

vvcat_package-1.0文件夹中的内容

Pyhton模块和包相关知识总结

使用 cat PKG-INFO命令可以查看到 PKG-INFO文件中的内容

Pyhton模块和包相关知识总结

使用 sudo python3 setup.py install命令安装vvcat_package模块

Pyhton模块和包相关知识总结

查看 vvcat_package模块安装后所在的目录,会看到以下几个文件:
vvcat_package vvcat_package-1.0.egg-info

Pyhton模块和包相关知识总结

通过 ipython3 对安装的模块进行测试

Pyhton模块和包相关知识总结
Pyhton模块和包相关知识总结

七、卸载模块

直接从安装目录下,把安装模块的目录 删除就可以

cd /usr/local/lib/python3.6/dist-package/

sudo rm -r vvcat_package*

根据以上两条命令进行如下操作:
先查看模块 安装的目录

# __file__ 用来查看模块所在的目录
vvcat_package.__file__

Pyhton模块和包相关知识总结

通过 cd 命令 到 dist-packages 目录下

Pyhton模块和包相关知识总结

最后使用 sudo rm -r vvcat_package*命令便可以卸载掉 安装的 vvcat_package模块
以下是删除后只剩下 vvcat_package-1.0.egg-info 文件

Pyhton模块和包相关知识总结

当再次使用 ipython3 调用该模块时,会显示没有该模块。

Pyhton模块和包相关知识总结

八、pip 安装第三方模块

pip 是一个现代的,通用的 Python 包管理工具提供了对 Python 包的查找、下载、安装、卸载等功能

安装和卸载命令如下:

# 将模块安装到 Python 3.x 环境
sudo pip3 install pygame
sudo pip3 uninstall pygame

在 Mac 下安装 iPython

sudo pip install ipython

在 Linux 下安装 iPython

sudo apt install ipython3

到此这篇关于Pyhton模块和包相关知识总结的文章就介绍到这了,更多相关Pyhton模块和包内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python循环监控远程端口的方法
Mar 14 Python
Python正则表达式完全指南
May 25 Python
Python中pandas dataframe删除一行或一列:drop函数详解
Jul 03 Python
python os.path.isfile 的使用误区详解
Nov 29 Python
Pytorch之view及view_as使用详解
Dec 31 Python
Python的in,is和id函数代码实例
Apr 18 Python
python利用线程实现多任务
Sep 18 Python
Django如何继承AbstractUser扩展字段
Nov 27 Python
pycharm + django跨域无提示的解决方法
Dec 06 Python
python 实现客户端与服务端的通信
Dec 23 Python
Python基础之Socket通信原理
Apr 22 Python
Django+Celery实现定时任务的示例
Jun 23 Python
python 下划线的多种应用场景总结
May 12 #Python
超级详细实用的pycharm常用快捷键
pycharm 如何查看某一函数源码的快捷键
教你使用Pandas直接核算Excel中快递费用
用python开发一款操作MySQL的小工具
May 12 #Python
浅谈Python类的单继承相关知识
May 12 #Python
PyCharm 安装与使用配置教程(windows,mac通用)
You might like
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
DOMAssitant最新版 DOMAssistant 2.5发布
2007/12/25 Javascript
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
2013/02/05 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
r.js来合并压缩css文件的示例
2018/04/26 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
Next.js实现react服务器端渲染的方法示例
2019/01/06 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
解决python 未发现数据源名称并且未指定默认驱动程序的问题
2018/12/07 Python
Python lambda表达式filter、map、reduce函数用法解析
2019/09/11 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
美国杂志订阅折扣与优惠网站:Magazines.com
2016/08/31 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
小班评语大全
2014/05/04 职场文书
会计求职信范文
2014/05/24 职场文书
地理科学专业自荐信
2014/09/01 职场文书
小学四年级学生评语
2014/12/26 职场文书
文化大革命观后感
2015/06/17 职场文书
单位车辆管理制度
2015/08/05 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书
vue实现无缝轮播效果(跑马灯)
2021/05/14 Vue.js
用python批量解压带密码的压缩包
2021/05/31 Python