在调试代码的时候,有的时候会遇到:importerror: no module named "XXX"这样的问题。

而有时,XXX明明就有哇!

一、两个概念:package和module

package,就是一个包,里面可以装东西的,可以装subpackage,也可以装module。怎么确定一个文件夹就是一个package呢:关键就看这个package里面是否有一个py文件叫__init__.py。只要有这个文件,就把该文件作为一个package就可以了,不管是package还是subpackage。

那什么是module呢?就是package中的一个py文件。

二、__init__.py文件的作用

(1). __init__.py文件定义了包的属性和方法,

(2). __init__.py会告诉python这是一个package

(3). 如果在__init__.py文件中定义一个__all__ = ["Module1", "Module2", "subPackage1", "subPackage2"]的变量,那么在import的时候,就会把__all__ 列表中的子模块和子包导入到当前作用域中来。

二、在开发的时候如何import?

1. 常见的import有如下形式

import package

import module

from package import module/subpackage (as XXX)

from package.subpackage import module/subpackage (as XXX)

from module import function

from package import * ##

但是,import module.function这种写法是错误的。

2. 如何导入是正确的呢?

看下图:

其中,每个module.py文件中会有若干个function。

在调用包的时候,

(1)同一个main_package下的各个subpackage相互调用。如sub_package1中的module1.py想调用sub_package1的module2.py、sub_package1的module2.py中的function1函数和sub_package2的module2.py

那么可以这样使用:

from . import module2.py

from .module2.py import function1

from ..sub_package2 import module2.py

总结:“. ”是导入本package的module,“.. ”是导入与package同级的packge中的module

(2)不同的main_package下的module.py文件相互调用。这个就比较常见了,不多讲。

python有哪些常用的package_python package相关机制总结相关推荐

  1. Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介、具体案例、使用方法之详细攻略

    Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介.具体案例.使用方法之详细攻略 目录 pandas中数据处理常用函数(isnull/dropna/fillna/ ...

  2. python常用的开发环境包括_Python 全栈:Python 四种常用开发环境总结

    包安装和镜像源 先来区分几个小白容易混淆的概念:Python 解释器.PyCharm.Anaconda.Conda 安装.pip 安装.PyCharm 是 Python 常用的集成开发环境,全称 In ...

  3. python第三方库排行-Python模块汇总(常用第三方库)

    模块 定义 计算机在开发过程中,代码越写越多,也就越难以维护,所以为了编写可维护的代码,我们会把函数进行分组,放在不同的文件里.在python里,一个.py文件就是一个模块 优点: 提高代码的可维护性 ...

  4. Python学习笔记:常用内建模块7XML

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  5. Python学习笔记:常用内建模块5

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  6. Python学习笔记:常用内建模块2:collections

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. 关于python的各个常用软件——python、pycharm、anaconda

    关于python的各个常用软件--python.pycharm.anaconda 工欲善其事,必先利其器.在我们学习python语言之前,必须要先安装一个顺手的编程工具,和python相关的软件有很多 ...

  8. Python 编程中常用的12种基础知识总结

    Python 编程中常用的12 种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出 ...

  9. python著作_Python 常用库和著作介绍 ---全能与潮流

    2017年最新IEEE世界编程语言排行榜公布,Python高居榜首. 在此之前,Python被广泛应用在web开发.系统运维.数据爬虫.数据分析和游戏服务器开发等,随着人工智能的浪潮,Python以其 ...

最新文章

  1. [ZT]SQL Server 的事务日志意外增大或充满的处理方法
  2. apache 服务发布多个项目,只需要更改配置文件(需要设定虚拟主机)
  3. WebView 实现JS效果和a标签的点击事件
  4. 在java 里kv 是什么_consul kv使用介绍
  5. 极客产品经理学习笔记
  6. 农村信用社计算机基础知识,2014年云南省农村信用社考试计算机基础知识练习题...
  7. 【动态规划 回文串11】LeetCode 516. Longest Palindromic Subsequence
  8. linux运维生产场景常用软件工具一览
  9. qt中socket通信流程图_Qt学习 之 Socket通信
  10. nvm for window 开源资源(免费下载)
  11. 如何改计算机二级照片大小,怎么修改照片大小内存,尺寸
  12. 微信小程序分享功能知识点
  13. SequoiaDB 巨杉数据库应用场景
  14. 151308-48-4,Cyclo(-Gly-Asn-Trp-His-Gly-Thr-Ala-Pro-Asp)-Trp-Val-Tyr-Phe-Ala-His-Leu-Asp-Ile-Ile-Trp
  15. 陆正耀旗下宝沃汽车申请破产:无力清偿到期债务 资金链断裂
  16. 正态分布某一点的概率怎么算_统计基础篇之十三:怎么理解正态分布(二)
  17. 真没想到刚刚会把这个记录下来。嘿嘿。
  18. dismiss和remove_Dialog的dismiss和cancel 区别 (转)
  19. Android数据加密传输
  20. 批处理中出现错误: batch must be either executed or cleared

热门文章

  1. mysql5 数据类型,Mysql学习笔记5-----字段的数据类型
  2. java activiti5_工作流Activiti5.13学习笔记(一)
  3. android 获取网卡mac_防亚马逊账号关联黑科技--如何修改我们的网卡MAC到底重要不?...
  4. windows10远程控制 电脑,远程桌面
  5. Java-JVM虚拟机内存垃圾回收机制gc入门:引用类型,对象标记算法,回收算法,常见的 garbage collector
  6. linux的文件压缩与解压缩,linux(文件压缩与解压缩)
  7. java抽象的理解_Java中抽象类的理解
  8. 深入理解计算机系统答案2.11,深入理解计算机系统 第十一章
  9. Tomcat(四):tomcat图形管理和身份认证
  10. NSURLSession简介与入门