不同目录间模块调用
import os
import sys
BASE_DIR= os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
from xxx import xxx


######################

import os
import sys
print(os.path.abspath(__file__))
print(os.path.dirname(os.path.abspath(__file__)))
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)

from core import main
main.login()
print(globals())

################

### 程序结构:
```
shopping_atm/
|-- shopping/
|   |-- __init__.py
|   |-- shopping.py
|   |-- user_info
|   |-- zhangfeilast_buy
|
|-- atm/
|   |-- __init__.py
|   |-- main.py  
|   |-- bin/
|       |-- __init__.py
|       |-- atm.py     
     
|   |-- conf/
|       |-- __init__.py            
|   |-- core/
|       |-- __init__.py  
|       |-- main.py
|   |-- db/
|       |-- __init__.py  
|       |-- 12345.bak
|       |-- 12345.dat
|       |-- 12345.dir
|       |-- 54321.bak
|       |-- 54321.dat
|       |-- 54321.dir
|-- README.txt


对于上面的程序结构,假如我们想在shopping的shopping.py中调用atm/core/main.py中的pay()函数。

可以在shopping.py中加入以下内容:

os
sys
BASE_DIR= os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)

atm.core main