discord.py AttributeError: 'ClientUser' object has no attribute 'avatar_url'?
Hi, 

ich bau momentan einen discord Bot mit python der ein Formular strten soll.

Code:

@bot.command()
async def testform(ctx):
    form = Form(ctx,'Title')
    form.add_question('Question 1','first')
    form.add_question('Question 2','second')
    form.add_question('Question 3','third')
    await form.start()

Error:

2023-09-09 08:58:09 ERROR    discord.ext.commands.bot Ignoring exception in command testform
Traceback (most recent call last):
  File "/usr/local/python/3.10.4/lib/python3.10/site-packages/discord/ext/commands/core.py", line 235, in wrapped
    ret = await coro(*args, **kwargs)
  File "/workspaces/moon/dir/.py/homeworkBOT/main.py", line 43, in testform
    await form.start()
  File "/usr/local/python/3.10.4/lib/python3.10/site-packages/discord/ext/forms/form.py", line 221, in start
    embed.set_author(name=f"{self.title}: {n+1}/{len(self._questions)}", icon_url=self._bot.user.avatar_url)
AttributeError: 'ClientUser' object has no attribute 'avatar_url'


The above exception was the direct cause of the following exception:


Traceback (most recent call last):
  File "/usr/local/python/3.10.4/lib/python3.10/site-packages/discord/ext/commands/bot.py", line 1350, in invoke
    await ctx.command.invoke(ctx)
  File "/usr/local/python/3.10.4/lib/python3.10/site-packages/discord/ext/commands/core.py", line 1029, in invoke
    await injected(*ctx.args, **ctx.kwargs)  # type: ignore
  File "/usr/local/python/3.10.4/lib/python3.10/site-packages/discord/ext/commands/core.py", line 244, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'ClientUser' object has no attribute 'avatar_url'

Ich verstehe nicht was mit 'avatar_url' gemeint ist da ich diese nicht in meinem Code benutze.

Ich hoffe jemand kann mir helfen.

Code, Python, Forms, Python 3, Discord, Discord Bot
Typkonvertierung eines Zeitstempels in Python?

Hallo an alle Python-Programmierer.

Ich habe versucht mit einem Python-Programm automatisch die Zeitstempel aus einer .tdms Datei (LabView-Datei) auszulesen, zu konvertieren & als eine .xlsx Datei (Excel-Datei) wieder abzuspeichern.

Allerdings ist die Uhrzeit im Zeitstempel der konvertierten Excel-Datei komischerweise immer genau 2 Stunden früher als in der tdms-Datei.

Hier folgend sieht man einen kurzen Auszug eines .tdms Messschriebs vom Kanal „SM States“. Geöffnet mit einem EXCEL-tdms Plugin. Somit kann man quasi mit Excel die .tdms Dateien öffnen:

Hier wird die erste Uhrzeit mit 04:21:06,391 PM bzw. 16:21:06,391 im 24h Format angegeben.

Wenn ich nun mit den folgenden Codezeilen im 12h Format versuche die "Timestamp" Daten in eine .xlsx Datei zu schrieben, kommt dabei das Problem mit den 2 Stunden Zeitversatz heraus:

 # Daten in Excel-Datei schreiben

      with pd.ExcelWriter(xlsx_output_path) as writer:

        for df_list, sheet_name in zip([sm_states_data_frames],

                        ['SM States']):

          for i, df in enumerate(df_list):

            if 'Timestamp' in df.columns:

              df['Timestamp'] = df['Timestamp'].apply(lambda x: x.strftime('%d.%m.%Y %I:%M:%S,%f %p'))

            df.to_excel(writer, sheet_name=sheet_name, index=False)

Hier zum besseren Verständnis ein Bild vom Code:

Hier sieht man nun das Ergebnis der Excel-Datei. Das Format an sich ist wie im obrigen Bild der .tdms Datei. Allerdings werden hier Microsekunden statt Millisekunden angezeigt, was aber denke ich erst mal nicht das Problem sein sollte.

Jedoch sieht man, dass nun 02:21:06 Uhr PM angezeigt wird, statt 04:21:06 Uhr PM der Quell-tdms-Datei. Das gleiche Problem habe ich übrigens auch wenn ich versuche den Zeitstempel in ein 24h Format umzuwandeln.

Hier noch ein Bild vom Dateiformat des "Timestamp" Reiters der Quell-tdms-Datei:

Ich wäre sehr dankbar, wenn mir hier jemand weiter helfen könnte!

Viele Grüße!

Jonas

Bild zu Frage
LabView, Programmiersprache, Python, Python 3
Verstehe den Fehler kaum Python?

HI,

und zwar bin ich dabei eine Aufgabe zu machen, doch kommen nicht weiter was mache ich den falsch??

Leider verstehe ich den Ausgebenden Fehler kaum.

Mein Code:

class Figur:
    def __init__(self, name, farbe, durchmesser, kanten):
      
        self.name = name
        self.farbe = farbe
    
        
    def ausgabe(self):
        print("Die Figur", self.name, "hat folgende Eigenschaften:")
        print("Die Figur hat die Farbe:", self.farbe)
        
        
    def Radius_Veraendern(self, veraendern):
      if self.radius < 1:
          self.radius = self.radius + 1
          print("Der neue Radius beträgt", self.radius)
          
          
    def Kante_Veraendern(self, veraendern):
      if self.kantenlaenge < 1:
          self.kantenlaenge = self.kantenlaenge + 6
          print("Die nue KAntenlänge brträgt", self.kantenlaenge)
          
          
    def Laenge_Veraendern(self, veraendern):
        if self.laenge < 1:
           self.laenge = self.laenge + 3
           print("Die neue Linienlänge beträgt:", self.laenge)
           
        
# Die Klasse für Kreis
class Kreis(Figur):
    def __init__(self, name, farbe, radius):
        super().__init__(name, farbe, radius)
        
        self.radius = radius
       
 
    def ausgabe(self):
        super().ausgabe()
        print("Der Radius beträgt:", self.radius)
        
        
#Die Klasse für Viereck
class Viereck(Kreis):
    def __init__(self, name, farbe, kantenlaenge):
        super().__init__(name, farbe, kantenlaenge)
        
        self.kantenlaenge = kantenlaenge
        
    def ausgabe(self):
        super().ausgabe()
        print("Die Kantenlänge beträgt:", self.kantenlaenge)
        
       
# Die Klasse für Linie
class Linie(Kreis):
    def __init__(self, name, farbe, laenge):
        super().__init__(name, farbe, laenge)
        
        self.laenge = laenge
        
    def ausgabe(self):
        super().ausgabe()
        print("Die Linienlänge beträgt:", self.laenge)
        
    
    


#einen Kreis erzeugen
kreis = Kreis("Mein Kreis", "Rot", 5)
kreis.ausgabe()
#verändere den Wert
kreis.Radius_Veraendern(-5)


print("----------------")


#ein Viereck erzeugen
viereck = Viereck ("Mein Viereck", "Blau", 8)
viereck.ausgabe()
#verändere den Wert
viereck.Kante_Veraendern8(-10)


print("----------------")




#eine Linie erzeugen
linie = Linie("Meine Linie", "Grün", 9)
linie.ausgabe()
#verändern den Wert
viereck.Linie_Veraendern(-8)
Programmiersprache, Python

Meistgelesene Fragen zum Thema Python