一、定义

模块就是用一堆的代码实现了一些功能的代码的集合,通常一个或者多个函数写在一个.py文件里,而如果有些功能实现起来很复杂,那么就需要创建n个.py文件,这n个.py文件的集合就是模块。如果不懂可以先看下面这篇博文:
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318447437605e90206e261744c08630a836851f5183000

二、类型

1、标准模块

  python自带的模块,不需要安装包,直接import就可以使用

2、第三方模块

  第三方开源模块通常需要自己去下载

3、自定义模块

自己写的实现自己某些功能的.py文件集合

二、标准模块

我们这里主要列举几个常用的标准模块:

import random  #随机数模块
print(random.randint(1,100))# 在1-100里随机取一个整数
print(random.uniform(1,900))# 取一个小数,顾头也顾尾 stus=['zhangsan','lisi','xiaohong']
print(random.choice(stus))#随机取一个元素
print(random.choice('sdfgadsgadfg')) print(random.sample(stus,2))# 随机取两个元素 l=list(range(1,101))
print('洗牌之前的',l)
print(random.shuffle(l)) #洗牌,也就是打乱,没有返回值,只能传list,所以下面要在print一下
print('洗牌之后的',l)

三、第三方模块

大牛们开源共享许多模块也加快了大家开发的速度,许多开源模块可以在这里找到

https://pypi.python.org/pypi

1、安装第三发模块

pip install xxx

2、手动安装:

  (1)下载.whl文件

  pip install e:\\dowload\\pymysql.whl

    (2)下载 .tar.gz文件

  ---解压

  ---进入目录执行 python setup.py install pymysql.tar.gz

3、列出当前装了哪些模块

pip list

4、导出当前已经安装的模块

freeze > 第三方模块.txt

5、指定文件批量安装模块

pip install -r 第三方模块.txt

四、python自定义模块的导入方式

1、直接import

这里有个大前提,就是你的py执行文件和模块同属于同个目录(父级目录),如下图:

  • main.py 和 pwcong模块同在python目录
  • 执行文件为main.py
  • pwcong文件夹为一个模块

我把pwcong模块提供的函数写在 __init__.py 里,里面只提供一个 hi 函数:

# pwcong 模块的 __init__.py
# -*- coding: utf-8 -*- def hi():
print("hi")

执行文件main.py直接import模块:

# main.py
# -*- coding: utf-8 -*- import pwcong pwcong.hi()

接着我们运行一下main.py可以看到命令行窗口输出了一句 hi ,第一种方式完成。

2、通过sys模块导入自定义模块的路径path

如果执行文件和模块不在同一目录,这时候直接import是找不到自定义模块的。如下图:

  • 执行文件main.py在main目录下
  • pwcong模块在python目录下

sys模块是python内置的,因此我们导入自定义模块的步骤如下:

  1. 先导入sys模块
  2. 然后通过sys.path.append(path) 函数来导入自定义模块所在的目录。
  3. 使用sys.path.append()方法可以临时添加搜索路径,方便更简洁的import其他包和模块。这种方法导入的路径会在python程序退出后失效。
  4. 使用sys.path.insert(0,'r'/Users/PycharmProjects/my_python/')定义搜索路径的优先顺序,序号从0开始,表示最大优先级,sys.path.insert()加入的也是临时搜索路径,程序退出后失效。
  5. 导入自定义模块。

这时候 main.py 这样写:

# main.py
# -*- coding: utf-8 -*- import sys
sys.path.append(r"C:\Users\Pwcong\Desktop\python") import pwcong pwcong.hi()

最后执行main.py文件,最终输出 hi ,第二种方式完成。

3、在环境变量中找到自定义模块

这个方法原理就是利用了系统变量,python会扫描path变量的路径来导入模块,可以在系统path里面添加。

模块和执行文件目录结构跟上图一样:

  • 执行文件main.py在main目录下
  • pwcong模块在python目录下

我们创建一个 module_pwcong.pth 文件,里面内容就是 pwcong模块所在的目录:

C:\Users\Pwcong\Desktop\python

将该 module_pwcong.pth 文件放到这里:
python安装目录\Python35\Lib\site-packages

例如我的:

然后 main.py 导入并使用自定义模块:

# -*- coding: utf-8 -*-

import pwcong

pwcong.hi()

最后执行 main.py 文件,可以输出 hi ,第三种方式完成。

注意:使用pycham可以把文件夹加到环境变量中

直接在文件夹上右键 mark directory as  选择 scorce root  直接把文件夹加到环境变量中。

python学习笔记:模块——自定义模块的3种导入方式的更多相关文章

  1. python 学习笔记8 (模块)

    Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代码段. 把相关的代码 ...

  2. Python学习笔记5:模块/包

    1.模块 模块简单理解就是一组功能的集合. 在Python中,一个文件(.py)就是一个模块,文件名即模块名. 模块的好处是大大提高代码的可维护性,其次,代码不必从零开始.当一个模块编写完毕,就可以被 ...

  3. [Python] Python学习笔记之常用模块总结[持续更新...]

    作为一种极其简单的编程语言,Python目前成为了最炙手可热的几种语言之一.它不仅简单易学,而且它还为用户提供了各种各样的模块,功能强大,无所不能.有利必有弊,学习Python同样有困扰,其中之一就是 ...

  4. python学习笔记之常用模块(第五天)

    参考老师的博客: 金角:http://www.cnblogs.com/alex3714/articles/5161349.html 银角:http://www.cnblogs.com/wupeiqi/ ...

  5. Python学习笔记十_模块、第三方模块安装、模块导入

    一.模块.包 1.模块 模块实质上就是一个python文件.它是用来组织代码的,意思就是把python代码写到里面,文件名就是模块的名称,test.py test就是模块的名称 2.包 包,packa ...

  6. python学习笔记(六):常用模块

    一.模块.包 什么是模块? 模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称. 什么是包? 包, ...

  7. Python 学习笔记(6)--常用模块(2)

    一.下载安装 下载安装有两种方式: yum\pip\apt-get 或者源码 下载源码 解压源码 进入目录 编译源码 python setup.py build 安装源码 python setup.p ...

  8. python学习笔记13(模块、包)

    在Python中有一个概念叫做模块(module),比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块. 模块文件以.py后缀结 ...

  9. python学习笔记(九)、模块

    1 模块 使用import 语句从外部导入模块信息,python提供了很大内置模块.当你导入模块时,你会发现其所在目录中,除源代码文件外,还新建了一个名为__pycache__的子目录(在较旧的Pyt ...

  10. Python学习笔记三:模块

    一:模块 一个模块就是一个py文件,里面定义了一些业务函数.引用模块,可以用import语句导入.导入模块后,通过 模块.函数名(参数)  来使用模块中的函数.如果存在多个同名模块,则前面模块名需要加 ...

随机推荐

  1. 记录规则(recording rules)与告警规则(alerting rule)

    记录规则(recording rules) 配置规则 Prometheus支持两种类型的规则,可以对其进行配置,然后定期进行评估:记录规则和警报规则.要在Prometheus中包含规则,请创建一个包含 ...

  2. git使用记录六:对commit的message做处理

    修改最新commit的message git commit --amend 修改老旧commit的message 查询最新的三个log soaeon@DESKTOP-FUJJTHR MINGW64 / ...

  3. 安装vue开发环境→安装淘宝镜像的时候报错

    问题: npm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least 2.1.6 to avoid ...

  4. docker安装中遇到的问题

    错误一 提示:Segmentation Fault or Critical Error encountered. Dumping core and aborting. Aborted 解答:安装错误安 ...

  5. 创建网关项目(Spring Cloud Gateway)

    创建网关项目 加入网关后微服务的架构图 创建项目 POM文件 <properties> <java.version>1.8</java.version> <s ...

  6. centos7 部署镜像仓库 harbor步骤详解

    一.基础设置  1.1 安装vim.wget yum install -y vim wget  1.2 卸载home.扩大root 如果考虑镜像仓库是给研发团队使用,需要配置较大容量的,因为cento ...

  7. 【学习总结】Python-3-多个变量赋值

    菜鸟教程-Python3-基本数据类型 同时为多个变量赋值的两种格式: 连等:看起来可能错误但事实上Python可以这样的.... 一团变量对应一团值:比较常见又省事的格式 END

  8. PHP应该学什么,如何学好PHP

    http://blog.sina.com.cn/s/blog_76bdabf70101azl4.html(注:原文来自传智播客) 本文转自http://blog.sina.com.cn/s/blog_ ...

  9. 查看linux 用户登录信息及ip

    查看可疑IP登陆 last -f  /var/log/wtmp cat  /var/log/secure  寻找可疑ip登陆次数及信息 who  查看当前登陆用户 -h  忽略头文件信息 -u 显示结 ...

  10. Codeforces 358D DP

    题意:有n只兔子需要喂养,每只兔子被喂养后的幸福感取决于与它相邻的兔子中已经被喂养的数量.现在问喂养这n只兔子可以获得的总幸福感最多是多少? 思路:初步分析题目发现,一只兔子被喂养获得的幸福感取决于其 ...