Python之BASEDIR(导入模块时容易犯得隐形错误)

Python之BASEDIR

在这里插入图片描述
正常情况下,在test.py模块里from module import main 是个隐形的错误,虽然程序会正常执行(因为pycharm编译器搜索路径时先在这个路径’C:\Users\hongsongyangyang\PycharmProjects\ATM\bin’下搜索,但是却找不到,然后pycharm编译器就自动加了一条路径’C:\Users\hongsongyangyang\PycharmProjects\ATM’,此时就能找到module包下的main模块了,但是逻辑上确是不正确的,我们可以在命令行窗口运行程序test.py会出现No module named ‘module’。
在这里插入图片描述
此时我们可以人为将’C:\Users\hongsongyangyang\PycharmProjects\ATM’路径加进去。

在这里插入图片描述
此时就不会出现No module named 'module’

__ file__ : 是用来获得模块所在的路径的,这得到的是一个相对路径(在命令行窗口里运行该程序才能看到相对路径)
在这里插入图片描述
在这里插入图片描述
os.path.abspath()—>把相对路径转换为绝对路径
os.path.dirname()—>测试脚本所在的位置,可以一层一层的往上找,例如:
print(os.path.dirname(os.path.abspath(file)))
输出:C:\Users\hongsongyangyang\PycharmProjects\ATM\bin
print(os.path.dirname(os.path.dirname(os.path.abspath(file))))
输出:C:\Users\hongsongyangyang\PycharmProjects\ATM
在这里插入图片描述
在这里插入图片描述
现在在任何电脑上都可以以这种方式导入模块了。

猜你喜欢

转载自blog.csdn.net/hongsong673150343/article/details/88555568