No module named ‘xxx‘

python 包间模块的互相调用

问题描述

在pycharm中进行包模块的调用时可以整成运行 ,但在命令行中却出现报错。

ModuleNotFoundError: No module named 'quadratic_weighted_kappa'

分析原因

在IDE写代码,通过“创建project——创建package——创建py文件”建立模块,编辑完成后运行,包间模块的调用没有问题。因为这个过程中,IDE自动记录了包和模块之间的依赖关系,此时调用当前包外的同一个project下的文件不成问题。
若将代码以命令行的形式运行,那就会出现上述的问题。

解决方案

答主首先尝试了将报错的文件名称和包名称进行了更改,发现依然会出现同样的报错,由此分析原因不是名称重复问题。后网上检索查得以下解决办法:

  1. 在project根目录下创建文件__main__.py
  2. 命令行切换到project根目录下 执行python -m
  3. 文件路径,注意,这个时候文件路径的最后是没有.py后缀的

第二种方法
在每个需要调用外部包模块的文件头添加

import sys
sys.path.append('引用模块地址')
#例如
import sys
sys.path.append("D://TEST//PYTHON")
../ 表示当前文件所在的目录的上一级目录
./ 表示当前文件所在的目录(可以省略)
/ 表示当前站点的根目录(域名映射的硬盘目录)

解决方法参考:
https://blog.csdn.net/hustqb/article/details/60133776

你可能感兴趣的:(Python基础,pycharm,ide,python,bash)