Python – die neusten Beiträge

Python Pickle Vokabeltrainer?

Hallo,

ich will einen simplen Vokabeltrainer mit python programmieren. Um die Vokabeln die vom user eingeben werden zu speichern verwende ich pickle. Leider werden ohne Fehlermeldung keine Vokabeln in der von mir angelegten Datei gespeichert.

import random
import pickle



class Entry:
    def __init__(self, deutsch, englisch):
        self.deutsch = deutsch
        self.englisch = englisch


    def toString(self):
        return self.deutsch + " - " + self.englisch
        
eintraege = [Entry("hallo", "hello")]


def save():
    with open('vocabulary.pkl', 'wb') as voc_pkl:
        pickle.dump(eintraege, voc_pkl)


save()
 
with open('vocabulary.pkl', 'rb') as voc_pkl:
    eintraege = pickle.load(voc_pkl)



def eingabe():
    while True:
        deutsch = input("Deutsches Wort: ")
        if deutsch == "#fertig":
            return
        englisch = input("Englisches Wort: ")
        if englisch == "#fertig":
            return
        eintraege.append(Entry(deutsch, englisch))
        save()
        
def abfrage():
    while True:
        i = random.randint(0,len(eintraege)-1)
        englisch = input("Englische Übersetzung von " + eintraege[i].deutsch + ": ")
        if(englisch == "#fertig"):
            return
        if eintraege[i].englisch == englisch:
            print("korrekt!")
        else:
            print("leider falsch. Richtige Antwort: " + eintraege[i].englisch)
            
def printall():
    for eintrag in eintraege:
        print(eintrag.toString())
        
while True:
    befehl = input("Befehl: ")
    if befehl == "eingabe":
        eingabe()
    elif befehl == "abfrage":
        abfrage()
    elif befehl == "beenden":
        break
    elif befehl == "ausgabe":
        printall()
    else:
        print("keine bekannte Ausgabe. Tippe: eingabe, abfrage, ausgabe oder beenden.")
Programmiersprache, Python

DOCKER Fehlermeldung: TypeError: function() argument 'code' must be code, not str, was tun?

Hallo, ich mit einem YouTube video eine kleine FastApi App geschrieben. Dann habe ich sie als ein Docker gebaut. Wenn ich diesen nun starte bekomme ich die im Titel stehende Fehlermeldung. `Ich habe schon ganz Google nach einer Möglichkeit durchgesucht aber leider keine Lösung gefunden. Vll. hat ja einer von euch 'ne Idee.

DER CODE:

from fastapi import FastAPI
from app.model.test import Upscale

app = FastAPI()

class TextIn(Upscale):
    org_url: str


class TextOut(Upscale):
    url: str



@app.get("/")
def home():
    return {"health_check": "OK"}

@app.post("/post", response_model=TextOut)
def UpSc(payload: TextIn):
    textwrap = Upscale(payload.org_url)
    return {"url": "url"}

`

KOMPLETTER TRACEBACK: `

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
    worker.init_process()
  File "/usr/local/lib/python3.9/site-packages/uvicorn/workers.py", line 66, in init_process
    super(UvicornWorker, self).init_process()
  File "/usr/local/lib/python3.9/site-packages/gunicorn/workers/base.py", line 134, in init_process
    self.load_wsgi()
  File "/usr/local/lib/python3.9/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/usr/local/lib/python3.9/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/usr/local/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
    return self.load_wsgiapp()
  File "/usr/local/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/usr/local/lib/python3.9/site-packages/gunicorn/util.py", line 359, in import_app
    mod = importlib.import_module(module)
  File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/app/app/main.py", line 6, in <module>
    class TextIn(Upscale):
TypeError: function() argument 'code' must be code, not str

in meinen requirements.txt steht:

fastapi
boto3
opencv-contrib-python-headless
opencv-python-headless
numpy

ich nutzte Python 3.9 habe es aber auch ohne Erfolg mit anderen Version probiert.

Python, Python 3, Docker

Korrekte Angabe der Größe bei Bildern?

Hallo,

ich habe einige Bilder über eine Schleife auf 280 Pixel Breite und korespondierende Höhe verkleinert. Die Verkleinerung ist erfolgreich ausgeführt worden. Alle Bilder sind tatsächlich kleiner.

In einer docx-Datei sollen die Bilder an einer bestimmten Stelle der Tabelle eingefügt werden. Mit dem folgenden Codebeispiel gelingt mir dies zwar, aber er stellt die Bilder unnötig groß dar.

Also hatte ich eine kleine Abfrage generiert, wo nochmal die genauen Größen (Breite, Höhe) in entsprechenden Listen gespeichert werden.

Ich habe also eine Liste mit lauter 280.

for i in range(len(PICTURES)):
   Table.cell(i + 1, 4).text = ''    
   Table.cell(i + 1, 4).paragraphs[0].runs[0].add_picture(PICTURES[i])           

In der Form packt er mir die Bilder rein. Aber aus irgendeinem Grund nicht so wie ich das will. Er vergrößert das Bild unnötig und darum ist das Ergebnis auch Banane.

Schreibe ich

Table.cell(i + 1, 4).paragraphs[0].runs[0].add_picture(PICTURES[i], width=Width_new[i])

dann sollte er sich also eine 280 aus der Liste mit den ganzen 280ern suchen.

Das geht auch nicht. In dem Fall schreibt er nichts. Er muss anscheinend wissen, dass es sich um Pixel handelt?

Angenommen, ich schreibe

Table.cell(i + 1, 4).paragraphs[0].runs[0].add_picture(PICTURES[i], width=Cm(2))

weiß er, dass die Breite 2cm ist. Für Px() o.a. sagt mir der Editor, er kennt es nicht.

Weiß jemand einen Rat?

Programmiersprache, Python

Meistgelesene Beiträge zum Thema Python