python模块搜索路径_Python模块搜索路径
当一个名为 spam 的模块被导入的时候,解释器首先寻找具有该名称的内置模块。如果没有找到,然后解释器从 sys.path 变量给出的目录列表里寻找名为 spam.py 的文件。sys.path 初始有这些目录地址:
包含输入脚本的目录(或者未指定文件时的当前目录)。
PYTHONPATH (一个包含目录名称的列表,它和shell变量 PATH 有一样的语法)。
取决于安装的默认设置
注解 在支持符号链接的文件系统上,包含输入脚本的目录是在追加符号链接后才计算出来的。换句话说,包含符号链接的目录并 没有 被添加到模块的搜索路径上。
在初始化后,Python程序可以更改 sys.path。包含正在运行脚本的文件目录被放在搜索路径的开头处, 在标准库路径之前。这意味着将加载此目录里的脚本,而不是标准库中的同名模块。 除非有意更换,否则这是错误。更多信息请参阅 python标准模块。
为了加速模块载入,Python在 pycache 目录里缓存了每个模块的编译后版本,名称为 module.version.pyc ,其中名称中的版本字段对编译文件的格式进行编码; 它一般使用Python版本号。例如,在CPython版本3.3中,spam.py的编译版本将被缓存为 __pycache__/spam.cpython-33.pyc。此命名约定允许来自不同发行版和不同版本的Python的已编译模块共存。
Python根据编译版本检查源的修改日期,以查看它是否已过期并需要重新编译。这是一个完全自动化的过程。此外,编译的模块与平台无关,因此可以在具有不同体系结构的系统之间共享相同的库。
Python在两种情况下不会检查缓存。首先,对于从命令行直接载入的模块,它从来都是重新编译并且不存储编译结果;其次,如果没有源模块,它不会检查缓存。为了支持无源文件(仅编译)发行版本, 编译模块必须是在源目录下,并且绝对不能有源模块。
给专业人士的一些小建议:
你可以在Python命令中使用 -O 或者 -OO 开关, 以减小编译后模块的大小。 -O 开关去除断言语句,-OO 开关同时去除断言语句和 doc 字符串。由于有些程序可能依赖于这些,你应当只在清楚自己在做什么时才使用这个选项。“优化过的”模块有一个 opt- 标签并且通常小些。将来的发行版本或许会更改优化的效果。
一个从 .pyc 文件读出的程序并不会比它从 .py 读出时运行的更快,.pyc 文件唯一快的地方在于载入速度。
compileall 模块可以为一个目录下的所有模块创建.pyc文件。
关于这个过程,PEP 3147 中有更多细节,包括一个决策流程图。
python模块搜索路径_Python模块搜索路径相关推荐
- python模块大全使用说明_python模块详解
使用python时,常常会涉及到库的调用,这就需要掌握模块的基本知识.本文分为如下几个部分 概念说明 模块的简单调用 包的导入 特殊的__init__.py文件 导入模块的搜索路径 __all__ 绝 ...
- python好用的模块和包_Python模块和包详细讲解与实例分析
一丶模块 我们经常说模块模块的,究竟什么是模块呢? 一个模块就是包含了Python定义和声明的文件,文件名就是模块名字加上.py的后缀 但其实import加载的模块分为四个通用类别: 1.使用Pyth ...
- python加载机制_Python 模块的加载顺序
基本概念 module 模块, 一个 py 文件或以其他文件形式存在的可被导入的就是一个模块 package 包,包含有 init 文件的文件夹 relative path 相对路径,相对于某个目录的 ...
- python怎么定义名称_Python模块的定义,模块的导入,__name__用法实例分析
本文实例讲述了Python模块的定义,模块的导入,__name__用法.分享给大家供大家参考,具体如下: 相关内容: 什么是模块 模块的导入 模块的导入 自模块的导入 同级目录导入 不同级目录导入 目 ...
- python 阮一峰_Python模块整理
这两天学习了一些基本的Python模块,现在做一些整理,理清楚 查看大佬的理解:http://www.cnblogs.com/alex3714/articles/5161349.html 开始时间:1 ...
- python模块的函数_Python模块及函数的使用
一. 1.模块是包含函数和其他语句的脚本文件,以".py"为后缀名,在Python中可以通过导入模块来使用模块中的函数或数据. 创建一个文件fun.py内容如下: def f1() ...
- python导入模块以及类_python模块的导入以及模块简介
标签: 一.模块的定义及类型 1.定义 模块就是用一堆的代码实现了一些功能的代码的集合,通常一个或者多个函数写在一个.py文件里,而如果有些功能实现起来很复杂,那么就需要创建n个.py文件,这n个.p ...
- python获取绝对路径_python文件绝对路径写法介绍(windows)
python文件绝对路径写法介绍(windows) python在描述路径时有两种方式: 'd:\\a.txt',转义的方式 r'd:\a.txt',声明字符串不需要转义 (使用raw string, ...
- python安装的模块在哪里_python模块安装目录在哪里
Python的强大,其中一个重要原因是Python有很丰富的库(模块)从而可以比较方便地处理各种各样的问题.Python开发的第三方modules一般都安装在一些固定的路径,如下: Unix(Linu ...
最新文章
- C#检测电脑的一些设置通用类(经典推荐)
- 【 MATLAB 】norm ( Vector and matrix norms )(向量范数以及矩阵范数)
- 网站建设想要出类拔萃还要从基础上做创新
- python编程基础题库_大学moocPython编程基础题库及答案
- mysql导入sql脚本命令
- 4个强大的Linux服务器监控工具[转]
- Python 字符串/列表/元组/字典之间的相互转换 - Python零基础入门教程
- Mr.J-- jQuery学习笔记(八)--CSS样式操作
- 计算机网络课设不会,计算机网络课设讲述.doc
- 机器学习基础:逻辑回归(Machine Learning Fundamentals: Logistic Regression)
- 购买代购的产品算违法吗——看空姐代购被判刑有感
- 世界上最简单的会计书(资产负债表)
- HTML正方体滚动特效
- 抖音实战~分享模块~短视频下载(保存到相册)
- img 获取二次元图片地址
- 《C++大学教程》学习笔记(九)
- 有利润表模板的BI软件有哪些?
- sendfile相关
- 883. 三维形体投影面积
- vue3项目ts文件引入LodopFuncs.js打印控件