1.如果导入的模块和主程序在同个目录下,直接import就行了
2.如果导入的模块是在主程序所在目录的子目录下,可以在子目录中增加一个空白的 __init__.py 文件,该文件使得python解释器将子目录整个也当成一个模块,然后直接通过“import 子目录.模块”导入即可。
3.如果导入的模块是在主程序所在目录的父目录下,则要通过修改path来解决,有两种方法:
(1)通过”import sys,sys.path.append(‘父目录的路径’)“来改变,这种方法属于一次性的,只对当前的python解释器进程有效,关掉python重启后就失效了。
(2)直接修改环境变量:在 windows 中是 “ set 变量=‘路径’ ” 例如:set PYTHONPATH=‘C:\test…’ 查看是否设置成功用 echo %PYTHONPATH% ,而且进到 python 解释器中查看 sys.path, 会发现已经有了新增加的路径了。这种方式是永久的,一次设置以后一直都有效。在 linux 中是 “export 变量=‘路径’ “,查看是” echo $变量 “
通过修改 path 是通用的方法,因为 python 解释器就是通过 sys.path 去一个地方一个地方的寻找模块的。
举例:abc.py 的文件就是一个名字叫 abc 的模块; test5.py 的文件就是一个名字叫 test5 的模块。
每一个包目录下面都会有一个 __init__.py 的文件,这个文件是必须存在的,这个是包的标识!!!否则,Python 就把这个目录当成普通目录,而不是一个包。__init__.py 可以是空文件,也可以有 Python 代码,因为 __init__.py 本身就是一个模块。
显然 PCV 是一个包,tools 也是一个包。tools 目录下的 XXX.py 模块名就相应的变为 PCV.tools.XXX
参考资料:
第一小节出处
http://www.cnblogs.com/ylan2009/p/4186768.html