ModuleNotFoundError: No module named ‘src’

适用场景:自建的包找不到

原因:自建的module包所在路径不在PYTHONPATH下。
在IDE中执行python程序,编译器会自动把当前项目的根目录加入到包查找路径中,可以理解为加到PYTHONPATH下,所以直接执行是没有问题的。但是在cmd或者terminal控制台中直接使用python相关命令来执行程序,不会自动将当前项目加入到PYTHONPATH环境变量下,如果涉及到import其他文件夹下的变量就会报类似ImportError: No module named xxx这样的错误。

解决方法:使用sys.append()命令把报警包的所在文件夹路径加入到PYTHONPATH。下面是一个例子:
比如你的项目叫做learn_python, 下面是你的项目根目录下的文件结构。
├──README.md
├──__init__.py
├──conf
│ ├── init.py
│ ├── offline_conf.py # 本地运行配置文件
│ ├── online_conf.py # 线上运行配置文件
├──server # 启动服务文件夹
│ ├── init.py
│ ├── launch.py
你在运行launch.py时报警conf这个module找不到,这个时候就应该通过sys.append()命令把conf所在文件夹的路径(注意是conf所在文件夹的路径,不是conf的路径),也就是 learn_python的根路径添加到PYTHONPATH中,下面是实现方案的代码。

import sys
import logging
import os
# 把当前文件所在文件夹的父文件夹路径加入到PYTHONPATH
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from conf.online_conf import *

其中:
os.path.abspath(file)获取到的是launch.py的绝对路径;
os.path.dirname(os.path.abspath(file))获取到的是launch.py所在文件夹的也就是server的根路径;
os.path.dirname(os.path.dirname(os.path.abspath(file)))获取到的是server所在文件夹也就是learn_python的根路径。

至此就获取到了learn_pyhton的根路径,使用sys.append()命令把路径添加到环境变量中即可。

ModuleNotFoundError: No module named 'xxx’可能的解决方案大全链接:https://www.cnblogs.com/hi3254014978/p/15202910.html

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值