Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
模块能定义函数,类和变量,模块里也能包含可执行的代码。
(一)三种类型:
1。 标准模块:
python自带的
random、datetime、string、json、sys、os
2。 第三方模块【python2中没有pip,需要手动安装pip】
常用如下: pymysql 、 xpinyin、xlrd、xlwt等
1)第三方模块的安装方法:
2.1 pip install pymysql mac: pip3 install pymysql【pip源如果安装比较慢,可以将 下载地址改到国内 】
2.2 手动安装:
(1)pypi搜索安装的模块:如https://pypi.org/project/PyMySQL/
(2)安装文件下载:一个是whl结尾(通过pip install xxx.whl安装)。一个是tag.gz(解压后,python setup.py install安装)
2)卸载:
pip uninstall pymysql
3)更新:
pip install -U pymysql
4)列出已安装的所有模块:
pip list
5)延伸使用场景:
pip freeze > a.txt #导出已有的模块到文件中
pip install -r a.txt #安装文件中的模块(如果模块想安装最新的,那么文件里的模块后的版本号去掉)
另外一种实现方式:不用-r 安装的方式
import os
with open(“requirements.txt”) as fr:
for line in fr:
command=“pip install %s"line.strip()
os.system(command)
3。 自己写的模块
(二)模块的引入方法: 选中自定义py文件所在文件夹–右键–Mark Directory as–Resource Root
1. import 模块名 【想使用 Python 源文件,只需在另一个源文件里执行 import 语句】
引入之后的使用: 模块名.函数名
2. from … import XXX 【让你从模块中导入一个指定的部分到当前命名空间中】
3. from … import * 【把一个模块的所有内容全都导入到当前的命名空间,不建议使用】
4. from … import 模块内的函数,模块内的变量名称 【此方法不会把被导入的模块的名称放在当前的字符表中,即fibo 是没有定义的】
5. import printname as hl_printname # 加别名
6. 延伸:使用import时,Python解释器是怎样找到对应文件的呢?
(1)去python的环境变量(sys.path)目录下找.「默认将工程的目录加入到python的环境变量」
环境变量中,当前目录的路径排在了第一位;
import sys
print(sys.path)
(2)如果将桌面的模块引入,我们要如何引入? 将当前的路径加入到环境变量中[sys.path返回的是list]
sys.path.append(”/User/yay/Desktop/choujiang") 放到了目录的最后,只有最后才能找到。
sys.path.insert(0,"/User/yay/Desktop/choujiang") 优先查到这个模块。如果有重复的模块名字,用优先找到的
6. 延伸:import模块的时候做了什么事情?
6.1 导入模块的实质,就是把模块的python文件从头到下执行了一遍.
【只会被导入一次,不管执行了多少次import。这可以防止导入模块被一遍又一遍地执行】
6.2 _ name _ 代表的是当前的python文件名
#如果你运行的是当前这个python文件的话,那么__name__取值就是__main__
示例:print( _ name _ )
结果: _ main _
#如果你是在别的文件里面import的这个python文件,那么_ name 就是他的文件名
6.3 if _ name ==’ main ':
如果我在模块下写了测试代码。那么在导入模块的时候,就会被执行。那么如果不想被执行就把测试代码放到
if _ name==’ main _ ':下面