python在导入项目目录的文件时,会报错 ImportError, 这是由于系统没有找到模块路径(sys.path)。
根据我的一个简单项目来说明一下导入的正确姿势, 目录结构如下
── web_monitor
├── conf
│ ├── db_config.py
│ ├── __init__.py
├── db
│ ├── db.cnf
│ ├── __init__.py
│ ├── mongo.py
│ ├── mysql_pool.py
├── monitor
│ ├── task1.py
│ └── task2.py
├── test.py
└── utils
├── __init__.py
└── util.py
- 导入上级目录同级目录或者其他模块的模块
如 task1.py 要调用 mysql_pool.py 模块 , 在task1.py 要添加以下代码
两种方式
import os
import sys
cur_dir = os.path.abspath(os.path.dirname(__file__))
pro_dir = os.path.split(cur_dir)[0]
sys.path.append(pro_dir)
from db import mysql_pool
或者
import os
import sys
sys.path.append("..")
from db import mysql_pool
- 导入同级文件 模块
如 task2.py 需要导入task1.py
import task1
# 或者
from task1 import *
- 导入同级目录下的子文件
如 test.py 导入 db_config.py
from conf.db_config import *
- 注意 目录对应的__init__.py 文件时不能少的