python中模块和包的零基础学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中模块和包的零基础学习相关的知识,希望对你有一定的参考价值。

一、模块、包

1.模块:一个包含所有你定义的函数和变量的文件,其后缀名是 .py ,一个.py文件就是一个模块
模块实质上就是一个python文件。它是用来组织代码的,意思就是把python代码写到里面,文件名就是模块的名称,test.py test就是模块的名称
随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用
同样的原理,我们也可以下载别人写好的模块然后导入到自己的项目中使用,这种拿来主义,可以极大地提升我们的开发效率,避免重复造轮子。
2.包:一定包含 init.py模块 的文件夹,一般也会包含其他一些模块和子包
包,package本质就是一个文件夹,和文件夹不一样的是它有一个init.py文件。包是从逻辑上来组织模块的,也就是说它是用来存放模块的,
3.库(lib):库是完成一定功能的代码集合,具体表现可以是包,也可以是一个模块
4.框架(framework):为解决一个开放性问题而设计的具有一定约束性的支撑结构
5.python内置了一些库,除此之外,还有其他人自己做的一些库,称之为第三方库
6.一般把第三方库放在.../python3/lib/site_packages中

二、模块分类

1、标准模块、标准包
  python自带的这些模块,直接import就能用的
  import string,random,datetime,os,sys,json,hashlib
2、第三方模块
  别人写好的一些模块,开源的代码,你要安装之后才可以用
  想实现某个功能,可以先去百度搜一下有没有第三方模块
3、自己写的python文件

三、导入模块

我们先来看一个例子,导入系统内置的sys模块:
技术图片
在第二行处,写了这样一句话:“import sys”,表示使用系统自带的sys模块,因此,在下面的代码里,就可以使用sys模块里的函数:“sys.argv”,它的作用是返回命令行的参数列表。
使用关键词“import”,后面跟具体的模块名称,则可以导入某一个模块;同一个模块不管你执行了多少次“import”,只会被导入一次,以防止模块一遍又一遍的被执行;“import”应该被放在代码的顶端;
接下来我们导入一个自定义的模块,首先我们定义一个模块,并且把这个模块的名字叫做“myprint.py”,如下图所示:
技术图片

这个模块里定义了一个函数,打印输入的参数,并且在后面再加上一行自定义打印的文字。将这个文件保存,接下来让我们看调用方法:
技术图片

在调用的地方,同样只需要输入“import myprint”,然后就可以在任意地方调用了,调用的方法也是一样,用该模块的名字.函数名称(参数)就能达到调用目的。
from...import
刚才我们提到了引入一个模块使用“import”关键词,它将把这个模块整个引入进来,那么,from...import则是引入一个指定部分到当前的命名空间中来,例如我们有如下图所示的一个模块:
技术图片

上面的模块定义了两个函数,分别是“print_myself”和“print_other”,现在我们用from...import使用这个模块,并且只想使用第一个函数,如下图:

技术图片
从上面的两个例子,我们可以看到,“import”和“from...import”的作用都是引入一个模块,它们的区别在于:
“import”是引入一个完整的模块,“from...import”是引入模块中的一个或多个指定部分;“import”引入模块后,如果需要使用模块里的函数方法,则需要加上模块的限定名字,“from...import”则不用加模块的限定名字,直接使用其函数方法;值得一提的是,还有一种引入模块的方法:“from...import*”,举例如下图:
技术图片

请看,刚才运行时会出错的地方“print_other”不会出错了!但是,绝大多数编程人员不会这么写,因为它一次性的把一个模块里的所有函数、变量都一次性的引入进来了,有可能会覆盖现有代码的定义;
小结

Python中模块化的好处多多,总结起来,有如下优点:

1.提高了代码的可维护性;一个模块编写完毕之后,其他模块直接调用,不用再从零开始写代码了,节约了工作时间;避免函数名称和变量名称重复,在不同的模块中可以存在相同名字的函数名和变量名,但是,切记,不要和系统内置的模块名称重复;
2、python导入模块时候的顺序:
  (1) 从当前目录下找需要导入的python文件
  (2) 从python的环境变量中找 sys.path?
3、导入模块的实质:
 ? 就是把python文件从头到尾执行一次

四、安装第三方模块

1、傻瓜式的
(1) 直接在命令行窗口输入命令??pip install pymysql?、pip install redis
找到pip.exe文件所在的路径 之后在系统环境变量中加入此路径即可
    pip在python3.4以上的版本是自带的。但这种方式需要保证pycharm中的Project Interpreter路径是Python安装路径,否则即使窗口显示下载安装成功,依然不能成功import
    因为命令行下载下来的第三方安装包存储在Python安装路径python3Libsite-packages
    而pycharm import时,是从pycharm->File->Settings->Project Interpreter->设置的路径下pythonvenvLibsite-packages去取第三方安装包
(2) 也可以直接在pycharm中安装第三方模块,这样安装的模块会放在Project Interpreter->设置的路径下pythonvenvLibsite-packages下,就可以直接使用。

技术图片
项目开发过程中我们会用到很多的第三方类库:
打开项目文件——设置——项目——project Interpreter——选择项目环境,并且在项目环境中查看项目已引用的第三方库列表
技术图片
点击搜索添加需要的第三方库
默认地址是https://pypi.python.org/simple国外地址下载会非常慢,这里可以选择 Manage Repositories添加国内pip镜像

https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio
技术图片
?
这里推荐三个非常不错的国内镜像
https://pypi.tuna.tsinghua.edu.cn/simple/? 清华大学镜像
http://pypi.douban.com/simple/? ? 豆瓣镜像
http://mirrors.aliyun.com/pypi/simple/ 阿里镜像

2、手动安装
限制外网无法直接下载时,可以找别人下载好包然后手动安装
  (1) 百度搜索:python redis
  (2) 找到网址:https://pypi.python.org/pypi/redis#downloads,下载安装包
  (3) 安装whl结尾的安装包
   在地址栏中直接输入cmd
   pip install redis-2.10.6-py2.py3-none-any.whl
  (4) 安装tar.gz结尾的安装包
    a、解压这个压缩包
    b、在命令行里面运行?python setup.py install

打开这个网址, http://www.lfd.uci.edu/~gohlke/pythonlibs 在这个网站上面有很多 python 的第三方库文件,我们按 ctrl+f 搜索很容易找到 requests
3、卸载模块
pip uninstall xxx #卸载

如果现在失败可以升级pip
python -m pip install --upgrade pip

可以通过国内镜像库安装软件 :
https://www.jianshu.com/p/fc272a162b2d
pip?install?django?-i?https://pypi.tuna.tsinghua.edu.cn/simple/

pip install mysql-connector-python -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

安装第三方模块的几种方法:
1.在windows系统中打开cmd终端,通过命令pip install 模块的名称 来完成安装,如果下载慢的话加上国内的一个镜像路径
2.技术图片

2.在pycharm编辑器中通过settings来安装模块

技术图片
3.创建一个记事本requirements.txt 在其中写上要安装的模块 可以一次性把要安装的模块都安装上,模块可以指定版本号 也可以不指定
技术图片
或者在命令行中通过pip install 来安装也可以

技术图片

更多学习内容请移步https://edu.51cto.com/sd/ecf58
一定会让你受益匪浅

以上是关于python中模块和包的零基础学习的主要内容,如果未能解决你的问题,请参考以下文章

python中模块和包的零基础学习

python中模块和包的零基础学习

Python基础----import模块导入和包的调用

Python基础入门- Python模块和包

python基础——python添加模块搜索路径和包的导入

真正的零基础入门,检测能不能学会python看这篇就够了。