上一节,我们讲解了Python模块的基础知识,这一节我们继续深入了解模块的更多知识,从而让大家全面了解、掌握和运用模块到我们实际的编程中。
在上一节中有一句话“接着我们在这个文件所在目录运行Python解释器IPython”,不知道大家还记不记得。这就话背后隐含的意思是,在这个文件(模块)目录下,我们才可以import到这个模块,否则会报错,说找不到这个模块。这里,就涉及到了Python模块的搜索路径。
Python模块的搜索路径
当一个名为mylib的模块被导入时,解释器首先搜索内置模块是不是有该名字的模块。
如果没有找到,接着搜索sys.path列出的目录下面是不是有名为mylib的模块。
sys.path的初始化按以下几个路径的顺序:
(1)包含输入脚本的目录,如果没有输入脚本则是当前目录;
(2)环境变量PYTHONPATH(一个目录名称的列表);
(3)Python库的安装目录。
下面我们来验证一下sys.path所包含的路径,编写一个Python文件initpath.py如下:
# Author: veelion# file: initpath.pyimport sysprint(''.join(sys.path))
命令行下运行:python3 initpath.py得到如下结果:
$ python mylib.py/home/veelion/p2/tutorial/md_Python/codes/home/veelion/.virtualenvs/py3.7/li