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
我的项目结构如下:
我觉得这些意见不一致,可能会更有条理。我只是写了很多脚本,并且这样做很重要,但是我觉得有一种方法可以使它成为更一致的程序包,使用户可以在存在导入问题的任何地方运行它。
有帮助吗?
答案 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 *