ich arbeite derzeit an meinem ersten großen Projekt. Das Programm besteht aus den drei großen Bereichen
- GUI(Kivy),
- Datenbank(SQLAlchemy mit SQLite)
- PDF-Erstellung (ReportLab)
Ich habe ein Problem: Beim Modul "ReportLab" gibt es einen "Table" import, welchen das Modul "SQLAlchemy" aber auch hat. Da ich "Table" von "ReportLab" zuerst importiere und dann den von "SQLAlchemy" scheint es so als wenn ich den Import von "ReportLab" überschreibe.
Ich habe nun also das Problem, dass ich alles am Anfang der Datei importiere (es gibt nur eine Datei) aber gerne Table von ReportLab nutzen will, aber nicht kann.
Meine Frage an euch ist nun: Wie soll ich das Programm am besten anpassen?
Ich denke es gibt jetzt viele Möglichkeiten das Programm entsprechend besser zu "designen". Ich möchte gerne erfahren was der beste und gängigste Weg ist.
Das ist mein erstes (für mich) riesen Projekt, also hoffe ich, dass die Frage nicht all zu doof ist
Nachfolgend die besagten imports (Bitte steinigt mich nicht, ich weiß es sieht schrecklich aus. Ich mache es besser und gewöhne mir in Zukunft an es gleich korrekt zu machen, aber im Moment bin ich einfach froh das alles funktioniert und werde, wenn das Programm fertig ist erstmal ordentlich "aufräumen" versprochen
Code: Alles auswählen
# PDF generation
from operator import add
from re import MULTILINE
from reportlab.platypus.doctemplate import onDrawStr
import sqlalchemy
from sqlalchemy.ext.declarative.api import has_inherited_table
from sql_alchemy_tutorial import Base
from reportlab.platypus import BaseDocTemplate, Frame, Table, Paragraph, NextPageTemplate, PageBreak, PageTemplate, TableStyle, Image
from reportlab.lib.units import cm
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.rl_config import defaultPageSize
from reportlab.lib import colors
from barcode import Code128
from barcode.writer import ImageWriter
# GUI
import kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager, Screen
# Database
from sqlalchemy import create_engine, Table
from sqlalchemy import text
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.orm import relationship, sessionmaker
from sqlalchemy.orm import session
from sqlalchemy.orm.session import Session
from sqlalchemy.orm import aliased