如何设置python模块的默认搜索路径?

Python019

如何设置python模块的默认搜索路径?,第1张

Python的模块搜索路径PYTHONPATH类似Java的CLASSPATH\x0d\x0a由以下路径组合而成,通过更改以下4者其中之一都可以改变Python模块的默认搜索路径:\x0d\x0a1.当前工作目录\x0d\x0a2.操作系统的PYTHONPATH环境变量\x0d\x0a3.Python安装目录lib/site-packages中或PYTHONPATH中的.pth文件定义的路径\x0d\x0a如:find~/my_lib-typed-print>~/python2.6/site-packages/my_lib.pth\x0d\x0a4.运行时对sys.path的改变,如:\x0d\x0a\x0d\x0a向后增加:\x0d\x0asys.path.append(path)\x0d\x0apath不要以/或\结尾。\x0d\x0a向前增加:\x0d\x0asys.path.insert(0,path)

模板文档导入python并创建的方法如下:

1.1 需要导入的模板在同一文件夹

比如admin.py调用test.py模板,可以在admin.py中直接执行

因为python解释器查找模块时会找同一文件夹,所以不用导入路径名。

1.2 需要导入的模板在当前文件夹的子文件夹中

比如 manage.py调用setting.py模板,可以在manage.py中直接执行

无需加其他路径说明,因为 crm 也是一个模块(模块的集合)。

1.3 需要导入的模板在父文件夹中

比如admin.py想调用surround.py模板(在admin.py父文件夹project下),因为解释器找模块只会去本文件夹及本文件夹的子文件夹去找,不会去父文件夹找,为什么?试试看,先在admin.py中执行

当一个的模块被导入的时候,解释器首先寻找具有该名称的内置模块。如果没有找到,然后解释器从 sys.path 变量给出的目录列表里寻找该模板。所以输出结果可以看到是一个路径列表,其它路径不需要看,只看第一项

说明解释器就是从 pro文件夹开始往下找,而surround.py是在 project/crm文件夹下,显然是找不到的。解决方法,在admin.py中执行手动把相应的路径添加到 sys.path 中就可以了,这样导入就相当于可以从添加的相应路径开始往下找模块了。可以找到,结果也不会报错。