您的位置:首页 > 编程语言 > Python开发

python模块搜索路径 (sys.path)

2014-10-09 18:03 746 查看
导入一个叫 spam 的模块时,解释器先在当前目录中搜索名为 spam.py 的文件,然后在环境变量 PYTHONPATH 表示的目录列表中搜索,然后是环境变量 PATH 中的路径列表。如果 PYTHONPATH 没有设置,或者文件没有找到,接下来搜索安装目录,在UNIX中,通常是 .:/usr/local/lib/python

实际上,模块从 sys.path 变量给定的目录列表开始搜索。所以,脚本可以通过sys.path来修改搜索路径。

另外,自定义的模块不要同标准模块同名

实际上,解释器由 sys.path 变量指定的路径目录搜索模块,该变量初始化时默认包含了输入脚本(或者当前目录), PYTHONPATH 和安装目录。这样就允许Python程序了解如何修改或替换模块搜索目录。需要注意的是由于这些目录中包含有搜索路径中运行的脚本,所以这些脚本不应该和 标准模块重名,否则在导入模块时Python会尝试把这些脚本当作模块来加载。这通常会引发一个错误。

import sys

sys.path.append(‘c:/python’)

import sys, pprint

pprint.pprint(sys.path)

包 是一种组织python模块的方法。比如 模块名 A.B 就是在包A里的一个子模块。

包是目录,但其中必须包含__init__.py的模块

Debian现在的python package 都要采用python-central或是python-support 来建立,以符合新的 Python Policy。

python-support

为 Python 模块提供自动重新构建支持

这个软件包包含脚本 ‘update-python-modules’,可以将纯 Python 语言编写的模块编译为字节码。

为了不生成强依赖关系,在 Python 主版本号升级时,私有 Python 模块会自动重新构建。

针对已安装的多种 Python 版本,公有 Python 模块将自动生成相应的字节码。

所以才有 /var/lib/python-support/ , 里面python2.4 python2.5各自有一个目录,实现多个版本共存于1台机器

原文地址:
http://weiweiabc109.blog.163.com/blog/static/2835722011111643052261/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐