Warum kann ich meine Python-Datei nicht öffnen?
Hallo,
wenn ich im Explorer auf meine Python-Datei einen Doppelklick mache, öffnet sich das Programm für 1 Sekunde und schliesst sich dann sofort wieder. Woran liegt das?
Freundliche Grüsse
import pyttsx3
import re
import pyjokes
import speech_recognition as sr
from pyowm import OWM
import spotipy
from spotipy.oauth2 import SpotifyOAuth
import time
import random
import datetime
import pytz
from geopy.geocoders import Nominatim
from timezonefinder import TimezoneFinder
import sounddevice as sd
import pvporcupine
import openai
openai.api_key = 'sk-...'
model_id = "gpt-4"
engine = pyttsx3.init()
def recognize_speech(recognizer, source):
print("Sage etwas...")
audio = recognizer.listen(source, timeout=15)
try:
text = recognizer.recognize_google(audio, language="de-DE")
print("Text: " + text)
return text
except sr.UnknownValueError:
return "not_understood"
except sr.RequestError as e:
print(f"Fehler bei der Anfrage an die Google Web Speech API: {e}")
return ""
def picovoice_listen():
keyword_file_path = "C:\\Hey-Luna_de_windows_v3_0_0\\Hallo-Luna_de_windows_v3_0_0.ppn"
sensitivities = [0.01]
try:
porcupine = pvporcupine.create(
access_key='mNI+...==',
keyword_paths=['C:\\Hey-Luna_de_windows_v3_0_0\\Hallo-Luna_de_windows_v3_0_0.ppn'],
model_path='C:\\Hey-Luna_de_windows_v3_0_0\\porcupine_params_de.pv'
)
sample_rate = porcupine.sample_rate
print("Sample Rate:", sample_rate)
pcm = record_audio(sample_rate=sample_rate, duration=3)
keyword_index = porcupine.process(pcm)
if keyword_index >= 0:
print("Wake word detected!")
porcupine.delete()
return True
else:
print("Wake word not detected!")
except pvporcupine.PorcupineError as e:
print(f"Porcupine error: {e}")
return False
def record_audio(sample_rate, duration):
print("Aufnahme gestartet...")
audio = sd.rec(int(sample_rate * duration), samplerate=sample_rate, channels=1, dtype='int16')
sd.wait()
print("Aufnahme beendet.")
return audio.flatten()[:512]
def openai_request(prompt):
response = openai.ChatCompletion.create(
model=model_id,
messages=prompt
)
api_usage = response['usage']
print('Total Token consumed: {0}'.format(api_usage['total_tokens']))
prompt.append({'role': response.choices[0].message.role, 'content': response.choices[0].message.content})
return prompt
def speak(text):
engine.say(text)
engine.runAndWait()
def ausführen():
recognizer = sr.Recognizer()
while True:
if picovoice_listen():
with sr.Microphone() as source:
q = recognize_speech(recognizer, source)
print("Erkannter Text:", q)
if q == "not_understood":
speak("Entschuldigung! Das habe ich nicht verstanden.")
continue
elif "hallo" in q:
speak('Hallo! Womit kann ich dir behilflich sein?')
continue
else:
prompt = [{'role': 'user', 'content': q}]
prompt = openai_request(prompt)
response = prompt[-1]['content']
speak(response)
return # Programm beenden, nachdem die Antwort gesprochen wurde
if __name__ == '__main__':
ausführen()
Welchen Code enthält die Datei?
Es ist ein Python Code für einen Sprachassistenten, den ich gerade programmiere. Der Code ist leider zu lang, um ihn hier reinzuschreiben aber ich kann ihn sonst oben noch einfügen
2 Antworten
Da der Code ziemlich Komplex ist und ich auch keine Möglichkeit habe diesen selbst auszuprobieren würde ich vorschlagen das du mit eine IDE wie PyCharm mal probierst das Programm zu debuggen.
Python ist eine JIT Sprache. Du musst die Runtime von python.org installieren, dann cd'st du in das Directory wo die Datei ist (bspw. cd C:\.......\Downloads, kopier den Pfad aus dem Dateibrowser) und dann python dateiname.py
Die Runtime ist die eigentliche Installation von Python, ist ähnlich wie bei Java. Läuft im hintergrund vom System bis ein Python Command ausgeführt wird und kompiliert den Code dann bei der Ausführung.
Also einfach python.org/downloads
Python ist zwar nicht dafür konzipiert aber es gibt ein Paket namens py2exe oder so ähnlich das auch reguläre binaries ("exe" bei Windows) kompilieren kann. Das nennt sich dann AOT (Ahead of time vs JIT = Just in time).
Sprachen die voll auf AOT ausgelegt sind sind bspw. Go und C
Also muss ich auf python.org gehen, dort nach Runtime suchen und das dann installieren?