一、 模块
  使用内置函数vars()可以查看当前环境下有哪些对象(变量、函数、类)
  from 模块 import *:
  不会导入以下划线开头的对象
  只会导入__all__中定义了的对象(__all__中的每个元素需要是str类型)

  from pprint import PrettyPrinter
  pp = PrettyPrinter()
  pp.pprint(d) # d是一个变量

二、 包
  用来组织和管理模块,将一组模块汇聚到一个共同的包名称下
  包是一个(特殊的)文件夹:
  文件夹名,符合标识符规范
  文件夹下,有一个__init__.py文件
  从Python3.3起,包支持隐式命名空间,即,不用创建__init__.py文件。
  从包中导入模块和内容:
  import 包.模块
  from 包 import 模块
  from 包.模块import 内容
  只能在包下的模块中用(.表示层级: .表示当前目录,..表示上一层,…表示上2层,….表示上3层。层级为.的数量减去1)
  from ..模块 import 内容
  from ..包 import 模块
  from ..包.模块 import 内容

三、 模块搜索规则
  搜索顺序,找到之后,就不在找了
  sys.modules:记录了我们加载了那些模块,是一个字典类型,如果模块存在于该字典中,则会直接从字典中取得模块对象,而不会去查找。
  如果要导入的模块和是Python内置模块同名的,会忽略当前目录中的同名模块,而直接使用内置的模块。
  sys.path:记录了Python可以去哪些目录中查找模块和包,是一个列表类型,第一元素为空字符串,表示当前目录。
  python中import导入模块时,导入的名称必须和文件名大小写一致。
  python 执行代码时,加上参数-B,可以禁用生成缓存字节码(ByteCode)。
四、 包管理工具(pip、conda)
   pip:Python官方推荐的包管理工具,Python业界标准的、使用最广泛的包管理工具。
   pip的缺陷:pip只能安装Python包,不能添加系统缺少的C、C++依赖库(运行时),pip安装带有C、C++编写的Python包时,默认只能调用和Python版本对应的Microsoft Visual C++编译,否则会出错。
   pip命令(见书籍)
   conda:第三方推出的包管理工具。conda在系统已经存在的C、C++依赖库(运行时)不能满足程序运行需求时,会自动安装这些依赖库;conda集成了MinGW编译工具,可以直接编译C、C++编写的Python包而无需MS VC++。
   conda命令(见补充文档)
五、 虚拟环境
  虚拟环境的作用:
  创建一个隔离的Python环境,而不是系统已经安装了的Python环境。
  一旦激活了虚拟环境:
  用Python执行代码,会使用虚拟环境中的特定版本的Python,和系统安装了几个版本的Python无关。
  Python代码的执行,只会使用虚拟环境中的库(包和模块)。
  使用pip或其他包管理工具安装第三方库时,会直接安装到虚拟环境中。
  安装virtualenv:
  pip install virtualenv
  virtualenv-参数:
   -h、--help:查看帮助
   --version:查看版本
   --no-site-packages:不复制系统包(现已废弃,不起作用了)
   -p PYTHON_EXE、--python=PYTHON_EXE:指定Python版本
  常用标准用法:
  创建-虚拟环境:
  virtualenv <环境名> --python=<Python可执行程序路径>
  进入(激活)-虚拟环境:
  <环境名>\Scripts\activate.bat
  退出-虚拟环境:
  deactivate
  查看当前环境下的Python位置:
  import sys
  print(sys.executable)

python 包和模块的更多相关文章

  1. Python 包、模块、函数、变量作用域

    Python 项目的组织结构 - 包 -- 模块 --- 类 ---- 函数.变量   Python是利用包和模块来组织一个项目的.   包: 包的物理表现是一个文件夹,但是一个文件夹却不一定是个包, ...

  2. 关于python包,模块,.pyc文件和文件导入理解

    参考文献 一.包 包是一个文件夹,用来存放模块和子包. 包里一般会有一个__init__.py的文件(也可以没有). 包里会有一个__pycache__文件夹,存放.py文件经解释器解释后的中间字节码 ...

  3. python包与模块

    Python基础-包与模块 摘要 为重用以及更好的维护代码,Python使用了模块与包:一个Python文件就是一个模块,包是组织模块的特殊目录(包含__init__.py文件). 模块搜索路径,Py ...

  4. python包-logging-hashlib-openpyxl模块-深浅拷贝-04

    包 包: # 包是一系列模块文件的结合体,表现形式是文件夹,该文件夹内部通常会包含一个__init__.py文件,本质上还是一个模块 包呢,就是前两篇博客中提到的,模块的四种表现形式中的第三种 # 把 ...

  5. python 包和模块间的引入

    ##############################总结####################### 主要内容: 1. 模块 2. import 3. from xxx import xxx ...

  6. python包与模块导入

    一 .module 通常模块为一个文件,直接使用import来导入就好了.可以作为module的文件类型有".py".".pyo".".pyc&quo ...

  7. Pycharm 导入 Python 包、模块

    1.点击File->settings 2.选择Project Interpreter,点击右边绿色的加号添加包 3.输入你想添加的包名,点击Install Package 4.可以在Pychar ...

  8. Python(五) 包、模块、函数与变量作用域

    一.while循环与使用场景 CONDITION=1 while CONDITION <=5 : CONDITION +=1 print("hello") else: pri ...

  9. 17.Python略有小成(包,logging模块)

    Python(包,logging模块) 一.包 什么是包 官网解释 : 包是一种通过使用'.模块名'来组织python模块名称空间的方式 , 具体来讲 , 包就是一个包含有__ init __.py文 ...

随机推荐

  1. Eclipse Build path

    Build Path用于设置Java的构建路径,管理Java工程所包含的资源,使工程结构清晰合理. 包括以下几项: Source Source包括 source folder和output folde ...

  2. nginx upstream轮询配置

    nginx upstream nginx的upstream官方地址为:http://nginx.org/cn/docs/http/ngx_http_upstream_module.html 轮询分为多 ...

  3. MDX函数

    MDX重点函数 成员函数 1..CurrentMember 获取运行时当前的成员,用法:<Dimension>.CurrentMember . 2..Parent 获取运行时当前的成员的父 ...

  4. Excel 二维数组(数据块)旋转/翻转技巧

    Excel 二维数组(数据块)旋转/翻转技巧 原创 2017-12-30 久石六 久石六 工作中遇到个问题,需要将Excel中的数据块或者说二维数组向右旋转90度,才能再加工处理.当然,不是旋转文本方 ...

  5. LDAP认证模式简介

    今天发现公共服务中有ldap数据库服务,先大概了解一下ldap,转载下面的文章.原文链接:https://www.jianshu.com/p/d3f8c8f5d661 另外记录一篇文章地址:https ...

  6. 常见的php模式

    php中6种常见的设计模式 单例模式 观察者模式 策略模式 工厂模式 注册模式 适配器模式 单例模式 Db.php<?php /** * 单例模式 */ class Db { private s ...

  7. android 开发 View _13 绘制图片与BitmapShader位图的图像渲染器

    BitmapShader位图的图像渲染器 TileMode 模式 Shader.TileMode.CLAMP 边缘拉伸. Shader.TileMode.MIRROR 在水平方向和垂直方向交替景象, ...

  8. py库: matplotlib

    Matplotlib是一个Python 2D绘图库,可以跨平台生成各种硬拷贝格式和交互式环境的出版品质量图. http://matplotlib.org/ matplotlib官网 http://py ...

  9. lambda表达式,filter,map,reduce,curry,打包与解包和

    当然是函数式那一套黑魔法啦,且听我细细道来. lambda表达式 也就是匿名函数. 用法:lambda 参数列表 : 返回值 例: +1函数 f=lambda x:x+1 max函数(条件语句的写法如 ...

  10. echarts属性的设置(完整大全)

    // 全图默认背景  // backgroundColor: ‘rgba(0,0,0,0)’, // 默认色板 color: ['#ff7f50','#87cefa','#da70d6','#32cd ...