这个模块应该被放置在
1.我们引用它的程序的同一个目录中,
2.或者在sys.path
所列目录之一,
3.或者自建目录,但是要添加到sys.path
那么sys.path又什么什么呢?
简要的说一下库的搜索路径。当你试图导入(import)一个模块的时候,Python 会寻找几个地方。具体来说,它会搜寻在 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 搜索路径的开头。优先级最高。