测试:
新建一个目录: ATM ,目录下新建三个包 conf / bin / module 。并且在包 conf 新建一个 .py 文件 bin.py 。在 module 新建两个文件 logger.py / main.py 。
1 def logging(): 2 print('logging.............')
1 from module import logger 2 3 def main(): 4 logger.logging() 5 6 # main()
1 from module import main 2 3 main.main()
其中 bin.py 作为程序的进入接口
运行起来,似乎没有问题。
"D:Program Files (x86)python36python.exe" F:/ATM/bin/bin.py logging............. Process finished with exit code 0
但是其中隐藏了一个错误:
如下演示: 查看python解释器的运行时的查找目录。。。。。
对比
解决方式:
1 import sys 2 import os 3 BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 4 sys.path.append(BASE_DIR) 5 # sys.path.append('F:\ATM') 6 from module import main 7 8 from conf import setting 9 10 main.main() 11 12 # print(os.path.abspath(__file__))# 拿到绝对路径 F:ATMinin.py 13 # 14 # print(os.path.dirname(__file__))#拿到绝对路径的目录F:/ATM/bin 15 # print(os.path.dirname(os.path.abspath(__file__)))#F:ATMin 16 # print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))#F:ATM 17 # BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 18 # sys.path.append(BASE_DIR) 19 20 # print(__file__)# 拿到相对路径 bin.py 21 # 22 # 23 # print(sys.path)