29、python导入import模块module的路径设置
还有一种情况,就是对于模块的导入来说,这个模块如果不在我们安装的目录下面,或者是不在我们指定的目录当中,这个时候需要我们给它设定这个模块的导入路径。
# 模块文件 pymod.py
print("pymod")
如果我们直接导入其他目录中的.py模块的话,报错:
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-3-d5d860c13b8b> in <module>
----> 1 import pymodModuleNotFoundError: No module named 'pymod'
我们需要把的查找的路径给它改变了,通过系统模块sys来实现,通过这个模块我们不仅可以获取到的脚本执行的路径,也可以获取到我们库的加载路径。
# import pymod # ModuleNotFoundError: No module named 'pymod'
# 系统模块
import sys
print(sys.path)
执行该代码后,我们会看到sys.path是个list,里面存放的是我们整个的查找路径,从左到右,左侧的是最优先的,最优先的可能是我们源码所在的路径,然后是的安装路径,有我们整个执行文件所在的库路径,还有我们创建的虚拟环境,包括以后我们要做的扩展库路径等。
那我们现在想让它增加一个我们自己的路径该怎么做呢?
# 系统模块
import sys
# print(sys.path)
# 添加模块的查找路径,包的查找路径和模块的是一致的
sys.path.insert(0, "../common/pymod/")
import pymod
pymod.pymod_func()