模块搜索路径:导入一个叫spam的模块时,解释器先在当前目录中搜索名为spam.py的文件,然后在环境变量PYTHONPATH指琮的目录列表中搜索,然后是环境变量PATH中的路径列表。如果PYTHONPATH没有设置,或者文件没有找到,接下来搜索安装目录,在UNIX中,通常是 .:/usr/local/lib/python。实际上,解释器由sys.path变量指定的路径目录搜索模块,该变量初始化时默认包含了输入脚本(或者当前目录),PATHPATH和安装目录。
包通常是使用用“圆点模块名”的结构化模块命名空间。例如,名为A.B的模块表示了名为“A”的包中名为“B”的子模块。正如同用模块来保存不同的模块架构可以避免全局变量之间的相互冲突,使用圆点模块名保存像NunPy或Python Imaging Library之类的不同类库架构可以避免模块之间的命名冲突。
导入模块时,Python通过sys.path中的目录列表来搜索存放包的子目录。
必须要有一个__init__.py 文件的存在,才能使Python视该目录为一个包;这是为了防止某些目录使用了“string”这样的通用名而无意中在随后的模块搜索路径中覆盖了正确的模块。最简单的情况下,__init__.py 可以只是一个空文件,不过它也可能包含了包的初始化代码,或者设置了 __all__ 变量.
包用户可以从包中导入合法的模块,例如:
import Sound.Effects.echo
这样就导入了Sound.Effects.echo子模块。它必需通过完整的名称来引用。
Sound.Effects.echo.echofilter(input, output, delay=0.7, atten=4)
导入包时有一个可以选择的方式:
from Sound.Effects import echo
这样就加载了echo子模块,并且使得它在没有包前缀的情况下也可以使用,所以它可以如下方式调用:
echo.echofilter(input, output, delay=0.7, atten=4)
还有另一种变体用于直接导入函数或变量:
from Sound.Effects.echo import echofilter
这样就又一次加载了echo子模块,但这样就可以直接调用它的 echofilter() 函数:
echofilter(input, output, delay=0.7, atten=4)
需要注意的是使用 from package import item 方式导入包时,这个子项(item)既可以是包中的一个子模块(或一个子包),也可以是包中定义的其它命名,像函数、类或变量。import 语句首先核对是否包中有这个子项,如果没有,它假定这是一个模块,并尝试加载它。如果没有找到它,会引发一个 ImportError 异常。
相反,使用类似import item.subitem.subsubitem 这样的语法时,这些子项必须是包,最后的子项可以是包或模块,但不能是前面子项中定义的类、函数或变量。
python又将功能相近的函数组成文件,称之为模块。
import 导入的搜索路径是按sys.path值搜索。通过append()增加路径。import语句可以将文件名导入当前文件,从而通过该名字调用该文件的函数。(只是导入的文件名).from....import顺序不变,用来初始化模块,只在模块第一次被导入时执行。__name__;modlename.itemname的方法修改模块中的全局变量。
字节编译版。命令行中指定脚本文件名不产生.pyc文件.sys.ps1和sys.ps2在交互下有意义。
dir()列出模块下定义的名字(不含内置的) __builtin__
python将功能相近的文件放在同一个文件夹下,该文件夹称之为包
from包import模块可以省略前面的包名。import只是导入的包名而已。
__init__.py文件标志了所在文件夹是包
分享到:
相关推荐
Python模块是组织代码的一种有效方式,它是一个包含Python对象定义(如函数、类和变量)以及可执行代码的文件,通常以.py为扩展名。模块的使用有助于提高代码的可读性和可重用性,将相关功能归类到一起,便于管理和...
Python模块是其编程语言的核心组成部分,它封装了可重用的代码,使得程序设计更加高效、模块化。本文将深入探讨Python模块的源码,包括它们的结构、使用方法、导入机制以及如何阅读和理解模块的内部实现。 一、...
Python模块:time、random、os、sys、json、pickle、shelve、XML等
Python模块安装工具是Python开发中不可或缺的部分,它们使得在Python环境中获取、安装和管理外部库变得简单易行。本主题将深入探讨“python模块安装工具”,特别是在Windows 32位系统下,针对Python 3.3版本的环境。...
借助Boost.Python库可以将C/C++代码方便、快捷地移植到python模块当中,实现对python模块的扩充。首先,将C++下的代码编译为动态库,并将生成的动态库命名为封装模块的名字,如:用BOOST_PYTHON_MODULE(Module_Name)...
描述中提到的“编译成python2模块的包”,意味着开发者需要先将NS3的源代码编译,生成适配Python2的动态链接库或者Python模块。这通常涉及到以下步骤: 1. **安装NS3**: 首先需要下载并安装NS3的源代码,根据官方...
Python 模块的使用和定义 Python 模块是 Python 中的一种组织代码的方式,通过模块可以将代码组织成一个独立的单元,方便代码的重用和维护。本文将详细介绍 Python 模块的使用和定义,包括模块的导入、模块的定义、...
本资源“Python模块开发与引用演示”将引导你掌握如何创建、组织和使用自定义模块,从而提升你的Python编程效率。 首先,一个Python模块是一个包含Python定义和语句的文件,通常以`.py`为扩展名。在Python中,你...
pyrsync 是一个 Python 模块,它实现了 [rsync 算法] 1,用纯 Python 编写。它不是rsync 的包装器,而是一组通过 Python 应用完整 rsync 功能的函数。 最初的 rsync 规范要求使用 MD5 哈希,该模块的开发人员认为该...
Python 模块导入安装使用 Python 模块导入安装使用是 Python 编程语言中一个非常重要的概念。 Python 模块是 Python 的扩展包,它可以提供更多的功能和工具来帮助开发者更好地编写 Python 程序。要使用 Python 模块...
总结来说,Python模块是一种有效的代码组织方式,通过`import`导入模块,我们可以复用代码,同时sys模块提供了一系列与解释器交互的工具,如sys.argv用于处理命令行参数,这对于编写命令行应用程序特别有用。...
redislite 是一个 Redis 的 Python 模块,用于在 Python 代码中对 Redis 数据进行操作。示例代码:>>> from redislite import Redis >>> redis_connection = Redis('/tmp/redis.db') >>> redis_connection...
pywakeonlan, 在局域网上,一个用于唤醒的小型 python 模块 wakeonlan 一个用于局域网唤醒的小 python 。 它已经在本地和外部使用 python 2.7.3和 python 3.2.3进行了测试。项目是在 GitHub上的主机。 有关唤醒...
### Python模块介绍大全 Python作为一门强大的编程语言,其丰富的标准库是其一大特色。本文将根据提供的部分内容,深入解析Python中的多个模块及其用途,帮助读者更好地理解和掌握这些工具。 #### 一、数据持久化...
"Python模块使用总结" Python模块是Python编程语言的基本组成部分,它允许开发者编写可重用、可维护的代码。以下是Python模块使用总结: 模块的定义和使用 * 模块是包含Python定义和声明的文件,文件名就是模块名...
Python模块是Python编程中的一个重要概念,它允许我们将代码组织成逻辑单元,以便于重用和管理。理解Python模块是深入学习Python编程的关键步骤之一。在Python中,一个模块可以是一个包含Python定义和语句的文件,...
tensorflow的python模块,tensorflow-0.8.0-py3-none-any.whl 官网下载版本
"Python 模块使用详解" Python 模块是 Python 编程语言中的一种基本组成部分,用于组织和重用代码。模块是包括 Python 定义和声明的文件,文件名就是模块名加上 .py 后缀。模块的模块名(作为一个字符串)可以由...