Python学习笔记之疑问 7:自定义模块放在什么位置
2013-10-05 22:18
537 查看
这个模块应该被放置在
1.我们引用它的程序的同一个目录中,
2.或者在
3.或者自建目录,但是要添加到sys.path
那么sys.path又什么什么呢?
简要的说一下库的搜索路径。当你试图导入(import)一个模块的时候,Python 会寻找几个地方。具体来说,它会搜寻在
>>>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 搜索路径的开头。优先级最高。
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 搜索路径的开头。优先级最高。
相关文章推荐
- Python学习笔记之疑问 4:什么是模块
- Python学习笔记之疑问12:什么是tuple
- 【python学习笔记】模块导入的搜索路径顺序是什么?
- Python学习笔记之疑问 1:def 是什么意思
- Python学习笔记之疑问13:什么是Range
- python学习笔记——自定义模块导入
- Python学习笔记之疑问 5:#!/usr/bin/env python 是什么意思
- Python学习笔记5―Python模块
- 【Python】学习笔记十二:模块
- 4.python学习笔记:python多线程下的threading模块
- python学习笔记之—— calendar(日历)模块
- Python学习笔记6-Python中re(正则表达式)模块学习
- Python学习笔记04 模块
- Python学习笔记----模块
- Python之学习笔记(模块的使用)
- csv模块学习:Python学习笔记—CSV模块读写数据
- Python学习笔记(3): 什么是*args和**kwargs?
- 18. Python脚本学习笔记十八模块
- Python模块--Python学习笔记三
- Python学习笔记之疑问10:如何使用分隔符连接list中的字符串