【Python 基础教程】合理的使用模块与包

简介: 【Python 基础教程】合理的使用模块与包

👾前言👾


Python语言语法灰常的简单,大家也许被他的语法和成千上万个优秀的第三方库迷惑的不要不要的,Python的包管理工具没有像Java的Maven那样成熟,直接导入即可。如果不知道Python的一些包管理底层原理可能会在项目配置项目搭建上因为包的导入导出而费尽心思。今天就对Python底层的包管理进行一下剖析。然后讲一下导包常遇见的问题以及如何对项目进行打包。


🍁前置知识(目标)🍁


  • 理解包与模块的概念与区别
  • 理解运行时导包的顺序,Python解释器如何解析包
  • 掌握查看包、模块相关信息的函数


🤺为什么需要将程序模块化?🤺


💫开发的便利性而言


在日常进行程序开发的时候,如果项目很大不对程序进行模块化处理就会导致如果前一部分工作没有进展,则后续的工作更加无法进展。即使有再多的技术人员也无尽于事。如果将程序模块化后,分工给具体的人。则可以同时进行开发,最后对程序进行简单的组合即可。时间上互不影响。效率大大提升。



💫软件后期升级与维护而言


软件工程中一直流行一种思想“高内聚,低耦合”。使用这样的思想开发出的软件更加有利于后期的维护。高内聚就是各个模块内部应该紧密联系,减少不必要的代码。低耦合指的就是模块化,每个模块干啥事应该事先规定好。并且模块间依赖关系不要那么强。这样可以把程序的功能像插销与插座一样进行插拔。从而有利于后期的维护与更新。


🤺Python包管理工具pip🤺


💫简介


Python有成千上万的宝藏库,这些库相当于是已经集成好的工具,只要安装就能在Python里使用。 它们可以处理各式各样的问题,无需你再造轮子,而且随着社区的不断更新维护,有些库越来越强大,几乎能媲美企业级应用。 怎么下载安装呢?它们被放在一个统一的“仓库”里,名叫PyPi(Python Package Index),所有的库安装都是从这里调度。 有了仓库之后,还需要有管理员,pip就是这样一个角色。使用pip进行库的安装的时候默认是去外网下载的。所以大家有些库可能会安装不成功。有两种解决方式:一、科学上网 二、替换镜像源。


pip会默认将install的包安装到当前用户的工作目录下。解释器在进行导包搜索的时候现在当前目录搜索,再去操作系统环境变量PYTHONPATH指定的路径中搜索,最后去Python标准库搜索。有可能会出现用户工作目录中的包在py文件中无法使用的情况,这时候需要我们手动的把相应的包移动到Python的安装目录下的py+版本号\Lib\site-packages中。或者指定包的安装目录。 pip install -t py安装路径\Lib\site-packages 包名


💫常用的指令


🥴升级pip版本


pip install --upgrade pip



🥴常规库的安装


pip install 库名
• 1


🥴指定库的版本安装


pip install 库名==版本号


🥴卸载已安装的库


pip uninstall 库名
• 1


🥴列出已经安装的库


pip list
• 1


🥴将已经安装的库列表保存到文本文件中


pip freeze > 文件名


🤺模块与包🤺


💫基本概念


什么是模块?

模块指的是一块具有共同特点的代码。在Python中一个模块就是一个.py文件。Python的内置模块是用C语言编写的程序,可以使用C/C++扩展编写模块。

什么是包?

在Python中包就是一个文件夹,一个包中可以包含很多子包。每个包中至少包含一个__init__.py文件,在进行导包的时候首先执行__init__.py文件。

.pyc文件是干嘛的?

每个包中在被导入之后都会生成一个__pycache__文件夹。内部包含.pyc文件。.pyc结尾的文件是一个编译后的字节码文件。下次导包的时候会根据.py与.pyc的时间戳进行对比。如果没有修改就直接通过.pyc文件导入。生成.pyc文件是自动的,不需要程序员插手。


💫几种常见的导包方式


普及一个小知识

成员作用符(C++中指的是某对象的某成员) (Python中用于限定某模块中的某方法或函数、类)

.

域作用符(C++指某个命名空间下的某个类)(Python中目前木有见过)

: :

🥴1.导入模块


# 导入模块
import math
# 使用模块中的元素
math.pi


🥴2.从包中导入模块


from http import server
print(server.__name__)

🥴3.从包中导入模块中的元素


from http.server import __name__
print(__name__)


🤺运行时包、模块的管理🤺

💫什么时间导包?按什么顺序导包


Python解释器在主程序运行开始的时候将所有要用到的包导入。如果多次导入仅仅只会执行包内的代码一次。如果不重新加载包或动态导包。那么旧包中的内容更新后运行中的Python程序不会感受到。导包的搜索顺序一般如下:


当前目录

操作系统环境变量PYTHONPATH

Python标准库目录

sys.path 这是一个列表,搜索包的时候会迭代这个列表中的所有路径(可以人为的向列表中添加路径)

一般结合sys.path[0]------当前工作路径使用。可以自定义包的位置

值得注意的是:sys.path[0]并不会随着代码所在的模块改变而改变(sys.path[0]存的是主程序文件所在的路径)

主程序就是__name__==__main__的程序(也就是运行入口模块),普通模块的__name__是自己的模块名。

导包的时候会先将被导包程序中的代码运行一遍(除被导入模块中__name__=="__main__"下面的代码)


💫重新加载包


解决程序运行过程中,导入的包更新的问题。


import importlib
import 我的包名
importlib.reload(我的包名)


💫动态导包(运行过程中导包)


导包时程序刚开始运行时候的工作,如果当时不进行包的导入可以后期动态的通过该方法进行导包,import 关键字底层调用的也是这个函数进行导包。


动态导包使用的是__import__(),直接将要导入的包名(字符串形式)传进函数内即可。

eg:


m=__import__("sys")


🤺打包项目🤺


可以使用pip install PyInstaller 安装打包工具
然后切换到你要打包项目的主程序所在的目录,使用pyinstaller -F 文件所在的路径打包.py文件
(-F是只生成一个可执行文件)
相关文章
|
1月前
|
存储 人工智能 运维
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
199 48
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
|
11天前
|
JSON 数据可视化 API
Python 中调用 DeepSeek-R1 API的方法介绍,图文教程
本教程详细介绍了如何使用 Python 调用 DeepSeek 的 R1 大模型 API,适合编程新手。首先登录 DeepSeek 控制台获取 API Key,安装 Python 和 requests 库后,编写基础调用代码并运行。文末包含常见问题解答和更简单的可视化调用方法,建议收藏备用。 原文链接:[如何使用 Python 调用 DeepSeek-R1 API?](https://apifox.com/apiskills/how-to-call-the-deepseek-r1-api-using-python/)
|
1月前
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
56 7
|
28天前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
106 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
22天前
|
IDE 测试技术 项目管理
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
PyCharm是由JetBrains开发的Python集成开发环境(IDE),专为Python开发者设计,支持Web开发、调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试和版本控制等功能。它有专业版、教育版和社区版三个版本,其中社区版免费且适合个人和小型团队使用,包含基本的Python开发功能。安装PyCharm前需先安装Python解释器,并配置环境变量。通过简单的步骤即可在PyCharm中创建并运行Python项目,如输出“Hello World”。
197 13
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
|
2月前
|
Python
Python Internet 模块
Python Internet 模块。
133 74
|
1月前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
32 3
|
2月前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
87 8
|
2月前
|
Python
Seaborn 教程-模板(Context)
Seaborn 教程-模板(Context)
57 4
|
1月前
|
程序员 Linux Python
python中模板和包的使用
本文介绍了 Python 模块和包的基本概念及使用方法。模块是 Python 程序结构的核心,每个以 `.py` 结尾的源文件都是一个模块,包含可重用的代码。文章详细讲解了模块的导入方式(如 `import` 和 `from...import`),模块的搜索顺序,以及如何创建和发布自己的模块。此外,还介绍了包的概念,包是包含多个模块的特殊目录,并通过 `__init__.py` 文件定义对外提供的模块列表。最后,文章简述了如何使用 `pip` 工具管理第三方模块的安装与卸载。作者:大石头的笔记;来源:稀土掘金。

热门文章

最新文章

推荐镜像

更多