Datei finden Fehler?

Hallo,

ich mache ein Programm in Python (mit Turtle), welches erkennt wo die ISS ist. Aber (obwohl es in demselben Ordner ist) findet es die Datei 'map.gif' nicht. Kann mir da jemand helfen?

Danke im voraus!

Code:

import json
import turtle
import urllib.request


url = 'http://api.open-notify.org/astros.json'
antwort = urllib.request.urlopen(url)
ergebnis = json.loads(antwort.read())


print('Personen im Weltall: ', ergebnis['number'])


personen = ergebnis['people']
#print(personen)



for p in personen:
    print(p['name'], 'in', p['craft'])


url = 'http://api.open-notify.org/iss-now.json'
antwort = urllib.request.urlopen(url)
ergebnis = json.loads(antwort.read())


standort = ergebnis['iss_position']
breitengrad = float(standort['latitude'])
längengrad = float(standort['longitude'])
print('Breitengrad: ', breitengrad)
print('Längengrad: ', längengrad)


bildschirm = turtle.Screen()
bildschirm.bgpic("map.gif")

Fehlermeldung:

File "/home/pi/Dokumente/Python programme/Standart/Wo ist die ISS?", line 29, in <module>
    bildschirm.bgpic("map.gif")
  File "/usr/lib/python3.7/turtle.py", line 1481, in bgpic
    self._bgpics[picname] = self._image(picname)
  File "/usr/lib/python3.7/turtle.py", line 479, in _image
    return TK.PhotoImage(file=filename)
  File "/usr/lib/python3.7/tkinter/__init__.py", line 3545, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
  File "/usr/lib/python3.7/tkinter/__init__.py", line 3501, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't open "map.gif": no such file or directory
Python, Python 3, Tkinter
Python Tkinter clear geht nicht?

```File "C:\Users\Marek\energyECO\Gewinnspiel\clearEntry.py", line 9, in register_user

   vorname_entry.delete(0, END)

AttributeError: 'NoneType' object has no attribute 'delete'```

Das ist der Error

Und das der Code:

from tkinter import *
import csv

def register_user():
    vorname_info = vorname.get()
    nachname_info = nachname.get()
    email_info = email.get()

    # open the file in the write mode
    with open('Benutzernamen.csv', 'a', newline='', encoding='UTF8') as f:
        # create the csv writer
        writer = csv.writer(f, delimiter =';')
        # write a row to the csv file
        row=[vorname_info, nachname_info, email_info]
        writer.writerow(row)
        # close the file
        f.close()

    #vorname_entry.delete(0, END)
    #nachname_entry.delete(-0, END)

    Label(screen1, text="energyECO")

    vorname_entry.delete(0, 'end')
    nachname_entry.delete(0, 'end')
    email_entry.delete(0, 'end')


def register():

    global screen1
    screen1 = Toplevel(screen)
    screen1.title("Gewinnspiel")
    screen1.geometry("550x500")

    global vorname
    global nachname
    global email

    vorname = StringVar()
    nachname = StringVar()
    email = StringVar()

    global vorname_entry
    global nachname_entry
    global email_entry

    Label(screen1, text="Bitte tragen sie ihren Vor- und Nachnamen und außerdem ihre E-Mail ein", font=('Arial 15')).pack()
    Label(screen1, text=" ").pack()
    Label(screen1, text="Vorname * ", font=('Arial 12')).pack()
    vorname_entry = Entry(screen1,width=50, font=('Arial 20'), textvariable=vorname).pack()
    Label(screen1,text=" ").pack()
    Label(screen1, text="Nachname * ", font=('Arial 12')).pack()
    nachnamne_entry = Entry(screen1,width=50, font=('Arial 20'), textvariable=nachname).pack()
    Label(screen1,text=" ").pack()
    Label(screen1, text="E-Mail * ", font=('Arial 12')).pack()
    email_entry = Entry(screen1,width=50, font=('Arial 20'), textvariable=email).pack()
    Label(screen1,text=" ").pack()
    Label(screen1,text=" ").pack()
    Label(screen1,text=" ").pack()
    Label(screen1, text="Mit der Teilnahme am Gewinnspiel und der Eingabe meine Daten erkläre ich mich bereit, den E-Mail Newsletter von energyECO monatlich zu erhalten.", font=("Arial 10")).pack()
    Label(screen1,text=" ").pack()
    Button(screen1, text="Daten senden", font=('Arial 20'), width="15", height="2", command=register_user).pack()


def close():
    print("Closed!")
    screen.destroy()
    screen1.destroy()

def main_screen():
    global screen
    screen = Tk()
    screen.geometry("300x250")
    screen.title("energyECO")

    Label(text="energyECO", bg="gray", width="300", height="2", font=("Calibri", 13)).pack()
    Label(text=" ").pack()
    Button(text="Gewinnspiel", height="2", width="30", command=register).pack()
    Label(text=" ").pack()
    Label(text=" ").pack()
    Label(text=" ").pack()
    Button(text="Close", command=close).pack()
    Label(text=" ").pack()

    screen.mainloop()

main_screen()
Python 3, Tkinter
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
Python: Wieso kann ich nur eine Nachricht über die Socketverbindung senden?

Moin alle zusammen,

ich habe folgende Frage:

Ich habe zwei Python-Dateien geschrieben:

Client.py:

import socket

W = '\033[0m' # white
R = '\033[31m' # red
G = '\033[32m' # green
O = '\033[33m' # orange
B = '\033[34m' # blue
P = '\033[35m' # purple

def excp():
  print(R+"Es ist ein Fehler aufgetreten!"+W)
   
client = socket.socket()
client.connect((ip, port))
used = []

while True:
  command = str(input("Nachricht: "))
  used.append(command)
  command = command.encode()
  client.send(command)
  msg = client.recv(1024).decode()
  print(msg)
  print(used)

Port und IP sind natürlich definiert.

Server.py:

import socket

W = '\033[0m' # white
R = '\033[31m' # red
G = '\033[32m' # green
O = '\033[33m' # orange
B = '\033[34m' # blue
P = '\033[35m' # purple

def excp():
  print(R+"Es ist ein Fehler aufgetreten!"+W)
  
def sendOutput(msg):
  client.sendto(str(msg).encode(), (ip, port))
 
server = socket.socket()
server.bind((ip, port))
server.listen(1)

while True:
  client, client_addr = server.accept()
  print(f" {client_addr} Client wurde mit dem Server verbunden") 
  msg = client.recv(1024).decode()
  print(msg)

sendOutput(msg)

Das funktioniert auch alles. Nur kann ich vom Client aus nur eine Nachricht schicken, bei der Zweiten kommt nichts mehr beim Server an und auch nicht wieder zurück. Was ist denn falsch?

Vielen Dank im Voraus. :)

Python, Python 3, Socket

Meistgelesene Beiträge zum Thema Python 3