一 为什么需要模块和包

随着项目越来越大,所有代码都放在一个文件中,已经不能满足我们的需求了。这时候就要将代码进行整理了,模块和包的出现就是为了解决这个问题的。模块可以将一些相关联的代码组合在一个py文件中,包可以将一些相关联的模块组合在一个文件夹中。

二 将一个模块导入到当前文件中的几种方式

1.import

导入某个模块。以后要使用模块中的函数或者方法或者变量,则需要使用模块名.xxx的形式调用。

2.from xxx import xxx

从某个模块中导入某个对象或者方法等。也可以一次性的从模块中导入所有的对象。使用from xxx import *。

from c import c_method
from d import my_add
# import cprint('hello world')print('b end')

3.from a import b as c

从a中导入b并命名为c。以后在代码中引用b,通过c来引用。

三 包

包其实本质上就是一个文件夹,将一些相关联的模块组合在一起。但是如果一个文件夹要让Python识别为一个包,则必须在这个文件夹中创建一个叫做__init__.py的文件。一个文件夹中只有拥有了__init__.py这个文件,才能被视为一个包。
在同一个包中的模块如果要互相导入,则只能通过相对的方式进行导入,即:from . import xxx。

all

如果是在模块中写了这个变量,将控制from 模块名字 import *的行为。
如果在__init__.py文件中有这个变量,那么它将控制着from 包 import *的行为。

__all__ = ['GLOBAL_ZHILIAO','hello','Person']GLOBAL_ZHILIAO = 'zhiliao'def hello():print('hello')class Person(object):def __init__(self):print('person init method')
# 1. 模块__all__变量的作用
# from zhiliao import *
# print(GLOBAL_ZHILIAO)
# hello()
# p1 = Person()# 2. 包中__all__变量的作用
# 从包中import *,将不能导入任何模块
from tools import *
my_file.save_data("")
my_request.get_request('www.baidu.com')

五 模块的搜索路径

在当前目录下搜索模块。
在环境变量PYTHONPATH中搜索模块。
在Python安装路径下的Lib目录下查找。
使用os.path可以看到所有的查找路径。

from tools import my_request
my_request.get_request('xxx')import sys
print(sys.path)

六 模块的循环导入

比如有现在目录中有两个模块,一个a.py,一个b.py。在a.py中引用了b。而在b.py中又引用了a,那么这时候就产生了循环导入,让两个导入都不能完成。

name

如果是作为主程序来运行,那么等于__main__,如果是作为被导入的方式运行,那么是这个文件的名称。

八 安装包或者模块

可以通过pip或者easy_install安装。pip是现代化的一种安装包的方式,以下讲解pip的常用命令:

1.安装包

pip install requests

2. 安装指定版本的包

 pip install django == 1.10.6

3.卸载包

 pip uninstall django

4.升级包

 pip install -U requests

5.升级pip

 pip install -U pip

6.查看当前pip是哪个版本

 pip --version

7.显示某个已安装的包的信息

 pip show -f <包名>

8.列出当前环境下安装了哪些包

pip list

9. 将当前环境安装的包全部列出来放在文件中

 pip freeze > requirements.txt

10.从某个文件中安装包

pip install -r requirements.txt

11.临时更改安装源,以豆瓣源为例

pip install <包名> -i https://pypi.douban.com/simple

12.永久更改安装源

windows操作系统:在当前用户目录下新建pip/pip.ini,然后在文件中添加以下代码:

  [global]index-url = https://pypi.douban.com/simple

Linux/Mac:在用户目录下新建.pip/pip.conf,然后在文件中添加以下代码:

  [global]index-url = https://pypi.douban.com/simple

九 import解析

1.sys.modules

#coding: utf-8
import sys
# import b
# 1. 执行b模块中的代码# 2. 将b这个模块添加到sys.modules这个字典中
# import b
# sys.modules的作用:用来判断某个模块是否已经被导入到当前文件中
# is_in_modules = 'b' in sys.modules
# print(is_in_modules)
# import b# 3. 在当前文件中,创建一个变量叫做b来指向b这个模块
# import b
# import osfrom b import my_add
# 1. 执行b模块中所有的代码
# 2. 将b这个模块加到sys.modules中
print('b' in sys.modules)
# 3. 创建一个变量叫做my_add,指向了b模块下的my_add函数

2.import流程

# import b做的第一件事情,就是判断b是否在sys.modules这个字典中存在
# 1. 如果存在,就不再去导入b了。也就是说,就不会再去执行b模块中的代码
# 了
# 2. 如果不存在,就会导入b。然后执行b这个模块中的代码
# import b
from d import my_addprint('c file')def c_method():print('c method')my_add(1,2)

十 _ _ name _ _

from tools import my_fileprint('main:'+__name__)# 如果一个Python文件或者模块是作为被导入来运行的,
# 那么就不是作为主运行文件来执行的# 如果直接通过python a.py 那么a.py就是作为主运行文件来执行的def main():print('hello')if __name__ == '__main__':main()# 1. 如果在主运行文件中:__name__是等于__main__
# 2. 如果在模块中:__name__是等于模块名。如果还处在某个包下面
# 等于`包名.模块名`
# 3. 如果在包的__init__文件中,那么等于包的名字

Python基础之模块管理相关推荐

  1. Python基础之模块和包

    Python基础之模块和包 本节将介绍Python中的模块和包的概念及基本用法. 模块 简单来说模块就是一个python文件,我们可以将一些常量.函数.类等封装到一个模块中,然后在程序中使用该模块.模 ...

  2. python基础——使用模块

    python基础--使用模块 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env ...

  3. python基础之模块之os模块

    python基础之模块之os模块 os模块 os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/ ...

  4. 用于生成随机数的python标准库模块是_详解Python基础random模块随机数的生成

    详解Python基础random模块随机数的生成 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  详解Python基础random模块随机数的生成.txt ] ( ...

  5. python random库生成伯努利随机数的方法_详解Python基础random模块随机数的生成

    随机数参与的应用场景大家一定不会陌生,比如密码加盐时会在原密码上关联一串随机数,蒙特卡洛算法会通过随机数采样等等.Python内置的random模块提供了生成随机数的方法,使用这些方法时需要导入ran ...

  6. 刻意练习:Python基础 -- Task12. 模块

    背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...

  7. 带你学python基础:模块和包

    一.什么是模块 在我们平时的开发过程中,或多或少会用到 Python 的一些内置的功能,或者说,还会用到一些第三方的库,我们用到的这些 Python 的内置的功能,和一些第三方的库,就可以说是一些模块 ...

  8. python基础--自定义模块、import、from......import......

    自定义模块.import.from......import...... 1)模块的定义和分类 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例 ...

  9. 1.7 Python基础知识 - 模块初识

    在Python中有很多模块,模块对应的就是python源代码文件.模块中有Python程序自己附带的标准模块,还有很多其他人共享的第三方模块.模块中可以定义变量.函数和类.而多个功能类似的模块可以组织 ...

  10. (更新时间)2021年3月26日 python基础知识(模块的导入)

    模块 <1>Python中的模块 在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用impo ...

最新文章

  1. matlab 2010无法运行程序,matalb r2010a安装后打开出现一系列警告,无法运行,哪位大神帮...
  2. 基于OpenPose的人体姿态检测两个群众
  3. 跨域 (3) window.name
  4. 云计算中的Big Iron重新成为时尚
  5. maven配置tomcat7
  6. 第一节:ASP.NET开发环境配置
  7. Hadoop--ip和主机名配置
  8. 游戏服务器宕机应对措施
  9. spring 的jdbc和事务支持
  10. Cocos2dx 下面,对 音乐 和音效简单封装
  11. Python之路--Django--auth认证系统
  12. Pandas参考手册、常用函数及方法汇总
  13. 调研报告格式种类及相关调研报告的写法
  14. 《Hibernate官方文档》_笔记
  15. android+桌面组件开发,Android桌面小部件开发,及注意事项
  16. 企查猫app数据解密
  17. python牛顿环测量曲率半径
  18. 山石防火墙--飞塔防火墙间GRE配置
  19. python语言合法命名-python语言合法命名有哪些
  20. python爬取百度标题_Python爬取百度热搜和数据处理

热门文章

  1. w10投影全屏设置_win10投影仪怎么铺满全屏|win10投影器全屏的设置方法
  2. 免费好用的 Apple 工具(Windows 适用)
  3. 2021年Java开发爆款推荐!黑马java培训视频网盘下载
  4. PHP fuser,打印机提示 50.1 fuser error 这样的错误,无法正常打印?
  5. 当前版本与卡刷包android_安卓SuperSU卡刷包 V2.82 SR5 安卓版下载 - win10专业版官网 - win10系统之家...
  6. 弱电工程行业管理软件
  7. 代码规范(Sonar, P3C)
  8. 2019年最新全国省市区街道共46462条数据(统计局MySQL数据库)
  9. 如何在Visio中旋转图形
  10. 功能设计文档_PRD文档范例,产品经理值得收藏的写作手册