如何从Python源代码中获取类图?

huy*_*huy 7 python uml class-diagram pyreverse

Client我尝试从文件夹中的Python源代码获取类图,pyreverse但它需要__init__.py

(venv) C:\Users\User\Desktop\project> pyreverse Client
parsing Client\__init__.py...
Failed to import module Client\__init__.py with error:
No module named Client\__init__.py.
Run Code Online (Sandbox Code Playgroud)

我没有找到任何解决方案。有没有办法获取图表?

更新:文件夹 中有很多文件Client

Client.py
GUI.py
script.py
...
Run Code Online (Sandbox Code Playgroud)

这是代码的一部分Client.py

import threading


class Client:
    def __init__(self):
        self.socket = None
        self.listen_socket = None
        self.buff_dict = {}
        self.message_list_dict = {}
        self.lock = threading.Lock()
        self.target = None
        self.listen_flag = True
Run Code Online (Sandbox Code Playgroud)

这是代码的一部分GUI.py

import tkinter as tk


class Window(object):
    def __init__(self, title, font, client):
        self.title = title
        self.font = font
        self.client = client
        self.root = tk.Tk()
        self.root.title(title)
        self.build_window()

    def build_window(self):
        pass


class LoginWindow(Window):
    def __init__(self, client, font):
        super(LoginWindow, self).__init__('Login', font, client)
        self.build_window()
Run Code Online (Sandbox Code Playgroud)

huy*_*huy 9

感谢@Anwarvic 和@bruno,我想出了解决方案。

首先,在文件夹内创建空__init__.py文件Client

(venv) C:\Users\User\Desktop\project\Client> type NUL >  __init__.py
Run Code Online (Sandbox Code Playgroud)

然后转到Client我想要获取类图的文件夹的父文件夹:

(venv) C:\Users\User\Desktop\project> pyreverse Client -o png
Run Code Online (Sandbox Code Playgroud)

但我收到了这个错误:

The output format 'png' is currently not available.
Please install 'Graphviz' to have other output formats than 'dot' or 'vcg'.
Run Code Online (Sandbox Code Playgroud)

经过一些发现,我找到了这个解决方案。然后我就可以运行pyreverse而不会出现任何错误。

这是我使用的类图pyreverse

在此输入图像描述