python3 导入模块, 导入项目目录的模块如何不会出现报错 -- ImportError: No module named 'db'

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
  1. 导入上级目录同级目录或者其他模块的模块
    如 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
  1. 导入同级文件 模块
    如 task2.py 需要导入task1.py
import task1
# 或者
from task1 import *
  1. 导入同级目录下的子文件
    如 test.py 导入 db_config.py
from conf.db_config import *
  1. 注意 目录对应的__init__.py 文件时不能少的
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值