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

Python学习笔记之疑问 7:自定义模块放在什么位置

2013-10-05 22:18 537 查看
这个模块应该被放置在

1.我们引用它的程序的同一个目录中,

2.或者在
sys.path
所列目录之一,

3.或者自建目录,但是要添加到sys.path

那么sys.path又什么什么呢?

简要的说一下库的搜索路径。当你试图导入(import)一个模块的时候,Python 会寻找几个地方。具体来说,它会搜寻在
sys.path
里面定义的所有目录。

>>>import sys
>>>sys.path ['',

'/usr/lib/python31.zip',
'/usr/lib/python3.1',
'/usr/lib/python3.1/plat-linux2@EXTRAMACHDEPPATH@',
'/usr/lib/python3.1/lib-dynload',
'/usr/lib/python3.1/dist-packages',
'/usr/local/lib/python3.1/dist-packages']>>> sys <module'sys' (built-in)>>>> sys.path.insert(0,'/home/mark/diveintopython3/examples') >>> sys.path ['/home/mark/diveintopython3/examples',
'',
'/usr/lib/python31.zip',
'/usr/lib/python3.1',
'/usr/lib/python3.1/plat-linux2@EXTRAMACHDEPPATH@',
'/usr/lib/python3.1/lib-dynload',
'/usr/lib/python3.1/dist-packages',
'/usr/local/lib/python3.1/dist-packages']

上面的代码列出了以下几个内容:

1.其实sys是一个系统内置的模块,里面有一个属性 sys.path 。

2.sys.path 是一个目录名称的列表,它构成了当前的搜索路径。

3.不同的操作系统或python版本,它的sys.path是不一样的。

4.Python 会从头到尾的浏览这些目录(按照这个顺序),寻找一个和你正要导入的模块名称匹配的 .py 文件,但是,不是所有的模块都是按照.py 文件来存储。有些,比如 sys 模块,属于内置模块(built-in modules), 他们事实上被置入到 Python 本身里面了。

5.内置模块的特点是:因为它们不是用 Python 写的!( sys 模块是用 c 语言写的。)不能获得源代码。

6.其实我们可以将其它目录在运行时添加到这个列表中,然后无论任何时候你想导入一个模块,Python 都会同样的去查找那个目录。只要 Python 在运行,都会一直有效。

7.插入一个新的目录到 sys.path 列表的第一项,从而使其出现在 Python 搜索路径的开头。优先级最高。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: