首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入正确的模块,但在python中得到一个错误

导入正确的模块,但在python中得到一个错误
EN

Stack Overflow用户
提问于 2019-04-24 21:16:40
回答 1查看 107关注 0票数 1
代码语言:javascript
复制
import sys
from subprocess import run, PIPE
import shlex
from src.detector_main import detect_main

def main():
    # print command line arguments
    for arg in sys.argv[1:]:
        print(arg)

if __name__ == "__main__":
    # main()
    print(sys.argv)

这是我的主要模块。如果您看到from src.detector_main import detect_main,它应该从src/detector_main.py导入detect_main

在我的detector_main.py里,我有很多进口产品,

代码语言:javascript
复制
import ast
import os
import fpdf
import sys
from Detector.class_coupling_detector import detect_class_cohesion
from Detector.cyclomatic_complexity_detector import detect_cyclomatic_complexity
from Detector.long_lambda_detector import detect_long_lambda
from Detector.long_list_comp_detector import detect_long_list_comp
from Detector.pylint_output_detector import detect_pylint_output
from Detector.shotgun_surgery_detector import detect_shotgun_surgery
from Detector.useless_exception_detector import detect_useless_exception
# from tools.viz_generator import add_viz

def detect_main(directory):
    # Get stats for files in directory
    stats_dict = get_stats(directory)
    ....

运行我的主模块会给出以下错误:

代码语言:javascript
复制
File "pyscent.py", line 5, in <module>
    from src.detector_main import detect_main
  File "C:\Users\user\Desktop\proj\src\detector_main.py", line 5, in <module>
    from Detector.class_coupling_detector import detect_class_cohesion
ModuleNotFoundError: No module named 'Detector'

我不明白这是因为我走的是正确的道路。

我不明白这是因为我走的是正确的道路。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-24 21:22:35

在您的示例中,您将Detector.class_coupling_detector模块导入到与检测器位于同一个目录中的文件中,但是您的cwd 不是 src目录。

因此,您应该使用绝对导入from src.Detector...或相对导入from .Detector...

这里是关于这两种导入方式之间的区别的一些信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55838675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档