python入门第十九天_包 package

 测试:

新建一个目录: ATM ,目录下新建三个包 conf / bin / module 。并且在包 conf 新建一个 .py 文件 bin.py 。在 module 新建两个文件 logger.py / main.py 。

1 def logging():
2     print('logging.............')
logger.py
1 from module import logger
2 
3 def main():
4     logger.logging()
5 
6 # main()
main.py
1 from module import main
2 
3 main.main()
bin.py

其中 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)
原文地址:https://www.cnblogs.com/Mengchangxin/p/9298044.html