尽管路径正确,但出现Python导入错误

时间:2019-04-24 20:23:15

标签: python

detector_main.py

import ast
import os
import fpdf

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

import sys

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

此文件中有很多导入。当我运行此文件(参数是目录的字符串路径)时,出现以下错误

  File "C:\Users\user\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/user/Desktop/project/src/detector_main.py", line 12
    from ../tools.viz_generator import add_viz

我的项目结构如下:

enter image description here

enter image description here

我觉得这些意见不一致,可能会更有条理。我只是写了很多脚本,并且这样做很重要,但是我觉得有一种方法可以使它成为更一致的程序包,使用户可以在存在导入问题的任何地方运行它。

有帮助吗?

1 个答案:

答案 0 :(得分:0)

听起来您正在寻找的是Python软件包。

https://www.pythoncentral.io/how-to-create-a-python-package/

  

使用Python包真的很简单。您所需要做的就是:

     

创建一个目录,并为其指定软件包的名称。上课   在里面。在目录中创建一个 init .py文件!为了   创建一个Python包,非常容易。 init .py文件是   必要的,因为有了这个文件,Python就会知道这个目录   是除普通目录(或   文件夹-任何您想称呼它的地方)。无论如何,它在此文件中   我们将在其中编写一些import语句以从我们的类中导入类   全新的包装。

我要做的是将包裹放入

  

PYTHON_PATH \ Lib \ site-packages \ MYPACKAGE

然后在__init__.py

from .function_scripts import *