目录
第九章、模块的循环导入问题及模块的路径搜索
一、模块的循环导入问题
1. 什么是循环导入
两个模块互相导入,形成导入循环
#m1.pyprint(x)from m2 import xy = 20
m2.pyprint(y)from m1 import yx = 1
2. 问题
如果运行m1.py,则会产生ImportError: cannot import name 'y
如果运行m2.py,则会产生ImportError: cannot import name 'x
3.解决方案:
方案一:导入模块语句放在函数里,只要函数调用就可以运行执行导入
#m1.pyprint(x)def func1(): from m2 import x print(x) y =20
#m2.pyprint(y)def func1(): from m1 import y print(y) x = 1
2.方案二:导入之前定义变量,m1找到m2文件中的x后回到m1运行打印x,继续执行下面的代码
#m1.py1 print(x)2 3 y = 204 from m2 import x
#m2.py1 print(y)2 3 x = 14 from m1 import y
二、模块的路径搜索
一、模块的搜索路径顺序
内存--》内置--》自定义模块--》环境变量sys.path
要记住未来项目的执行文件一定要弄一个环境变量