美文网首页
2018-05-30 python的包导入机制

2018-05-30 python的包导入机制

作者: lucasdada | 来源:发表于2018-05-30 17:08 被阅读0次

背景:
在Python的大型项目中,一般都会用到模块包来组织文件层次,其中当一个目录内含有init . py文件时,就可以視该目录为一个模块包。
当在模块包中使用import语句的时候,不同的语法会导致不同的模块搜索导入方式,常见的导入方式如下:

绝对导入(absolute import)
显式相对导入(explicit relative import)
隐式相对导入(implicit relative import)
需要注意的是,这些导入方式都是对于模块包而言,对于一般的模块还是从sys.path搜索入手。

Prerequisite
Python脚本运行的方式?

Python脚本运行分为两种方式:一种是作为top level script运行,另一种则是作为被导入的包模块运行。
当使用python命令直接执行一个py文件的时候,该文件就是以top level script方式运行,此时文件的name属性则为main

# my.py

print __name__

# output

__main__

当文件使用包模块的方式运行的时候,文件的name属性则为模块的路径(从top level script的目录开始),包模块的例子目录结构如下:

├── main.py
└── pac
  ├── __init__.py
  └── moduleA.py

笔者将直接运行main.py文件,代码如下:

## main.py

from pac import moduleA


## moduleA.py

print __name__


## output

pac.moduleA

这两种运行方式还有不同的地方是,当使用top level script的方式运行的时候是不会生成字节码的(即.pyc文件),而通过包模块的方式则会生成字节码。

参考
Python的包导入机制

相关文章

  • 浅谈 Python 的模块导入

    浅谈 Python 的模块导入 本文不讨论 Python 的导入机制(底层实现细节),仅讨论模块与包,以及导入语句...

  • 2018-05-30 python的包导入机制

    背景:在Python的大型项目中,一般都会用到模块包来组织文件层次,其中当一个目录内含有init . py文件时,...

  • Python 绝对导入和相对导入详解

    Python 相对导入与绝对导入,这两个概念是相对于包内导入而言的。包内导入即是包内的模块导入包内部的模块。 Py...

  • 2019-04-30 手把手教你用pytorch实现迁移学习(第

    一.导入所需要的包: 1 导入和数据处理相关的python包 2 导入本地模块和函数 二.导入数据集: 使用Tor...

  • @import - 2018-05-30

    2018-05-30 创建 less的导入(@import)语法:@import (keyword) “filen...

  • python 导入包

    http://blog.csdn.net/luo123n/article/details/49849649

  • python post 请求

    Python编程进行接口测试。 导入requests包 因为是用requests包进行接口测试,所以需要导入req...

  • Python的包导入

    Python import 的搜索路径顺序是: 在当前目录下搜索该模块 (包需要有__init__.py文件) 在...

  • 包和pygame

    python中的包: 引入包、使用import.模块的方法导入、通过form文件import模块的方式导入、在文件...

  • python不能导入包

    记一次python导入包错误2018-5-11 我之前自己写了一个Python工具包, 但是今天怎么也没有导入成功...

网友评论

      本文标题:2018-05-30 python的包导入机制

      本文链接:https://www.haomeiwen.com/subject/sfrxsftx.html