FAQ
Häufige Fragen
Zu Start und Wiederherstellung, zum Bearbeiten und Ausführen von Code, zu Bibliotheken und Erweiterungen, zur Dateiübertragung, zu KI-Modellen und dem Assistenten sowie zum Kauf und zur Wiederherstellung.
Start und Wiederherstellung
Was kann ich tun, wenn Pythona direkt beim Öffnen abstürzt?
Versuche einen sicheren Start: Halte auf dem Home-Bildschirm das Pythona-Symbol gedrückt und wähle „Sicherer Start“.
Ein Absturz beim Start kann mit der Wiederherstellung zuvor geöffneter Dateien oder Ordner zusammenhängen. Der sichere Start setzt die gespeicherten Angaben zu geöffneten Tabs und zum letzten Ordner zurück und beginnt mit einem leeren Editor und dem lokalen Ordner Documents. Deine Skriptdateien bleiben erhalten.
Öffne nach dem erfolgreichen Start die zuvor verwendeten Ordner und Dateien einzeln, um zu prüfen, ob eine bestimmte Datei oder ein Speicherort das Problem auslöst. Wenn die App beim Öffnen einer Datei erneut abstürzt und „Semantische Hervorhebung“ aktiviert ist, führe nochmals einen sicheren Start aus, deaktiviere „Semantische Hervorhebung“ unter „Einstellungen → Theme“ und versuche es erneut.
Was kann ich tun, wenn ein Beispielskript nach einem App-Update nicht mehr läuft?
App-Updates ersetzen gespeicherte Beispielskripte nicht automatisch. Wenn ein Beispiel nach einem Update nicht mehr läuft, stelle die Beispiele der aktuellen App-Version wieder her und versuche es erneut.
Sichere zuerst alle Beispiele, die du bearbeitet hast. Wähle dann „Einstellungen → Beispielskripte wiederherstellen“. Dabei werden gleichnamige Beispieldateien im Ordner examples überschrieben.
Installierte Python-Pakete werden dabei nicht zurückgesetzt. Falls weiterhin ein Versionskonflikt bei Abhängigkeiten auftritt, prüfe die installierten Versionen der in der Fehlermeldung genannten Pakete.
Mehr zu AbhängigkeitskonfliktenCode bearbeiten und ausführen
Was kann ich tun, wenn die App beim Eingeben von Code abstürzt?
Wenn die App beim Eingeben von Code im Editor wiederholt abstürzt, kann dies mit der Codevervollständigung zusammenhängen. Deaktiviere „Vorschläge automatisch anzeigen“ unter „Einstellungen → Codevervollständigung“ und gib erneut Code in derselben Datei ein, um zu prüfen, ob die App weiterhin abstürzt.
Füge deiner Fehlermeldung den auslösenden Codeausschnitt und die genauen Eingabeschritte hinzu. Gib auch an, ob der Absturz bei deaktivierter Option „Vorschläge automatisch anzeigen“ weiterhin auftritt.
Warum endet die Ausführung nach „Stoppen“ nicht sofort?
„Stoppen“ fordert eine Unterbrechung an, kann aber nicht jeden Vorgang sofort abbrechen. Bei time.sleep(), beim Warten auf Netzwerkantworten oder Sperren und bei einigen Berechnungen in nativen Bibliotheken muss der Aufruf erst zurückkehren. Auch ein laufender Modulimport muss zuerst abgeschlossen werden.
Wenn die Ausführung auch nach längerem Warten nicht stoppt, speichere deine Dateien, schließe Pythona im iOS-App-Umschalter und öffne die App erneut.
Warum schließt sich die App beim Ausführen eines Skripts?
Funktionen zum Beenden
Wenn ein Skript seine Ausführung mit quit(), exit() oder sys.exit() beendet, schließt Pythona standardmäßig die gesamte App.
Ändere unter „Einstellungen → quit() / exit()“ die Option „Pythona beenden“ in „Nur aktuellen Lauf beenden“. Dann endet nur die aktuelle Ausführung und die App bleibt geöffnet.
Speichermangel
Beim Verarbeiten großer Arrays oder Ausführen großer Modelle kann iOS die App bei zu hohem Speicherverbrauch direkt beenden, ohne dass unbedingt ein Python-Fehler erscheint. Die Einstellung „quit() / exit()“ hat darauf keinen Einfluss. Versuche, die Datenmenge oder Modellgröße zu reduzieren oder die Daten in kleineren Portionen zu verarbeiten.
Threads und UIKit
Python-Skripte werden in Pythona standardmäßig in einem Hintergrundthread ausgeführt. Wenn du UIKit über ctypes oder rubicon-objc aufrufst, müssen Vorgänge wie das Erstellen oder Aktualisieren der Oberfläche im iOS-Hauptthread (UI-Thread) ausgeführt werden. Andernfalls kann die App abstürzen.
Du kannst diese Vorgänge in einer Funktion zusammenfassen und mit der integrierten Funktion run_on_ui(...) asynchron im Hauptthread ausführen lassen. Alternativ kannst du sie über GCD an die Hauptwarteschlange übergeben. Das WKWebView-Beispiel in der App zeigt, wie du run_on_ui verwendest.
Wenn das Problem wiederholt auftritt, sende bei deiner Meldung bitte Code und Schritte mit, mit denen es sich nachstellen lässt.
Wie beende ich die Eingabe und sende EOF?
Wähle während der Skriptausführung im Bearbeitungsmenü des Konsoleneingabefelds „EOF senden“ oder drücke Ctrl+D auf einer externen Tastatur. Text im Eingabefeld wird zuerst gesendet; anschließend endet die Eingabe für den aktuellen Lauf.
Wie übergebe ich Argumente an ein Skript?
Halte die Ausführen-Taste im Editor gedrückt und wähle „Mit Argumenten ausführen...“. Die Argumente werden dem Skript als sys.argv[1:] übergeben. Über „Ausführungskonfigurationen bearbeiten…“ im selben Menü kannst du häufig verwendete Argumente speichern und eine Standardkonfiguration festlegen.
Wie führe ich ein Skript mit der App „Kurzbefehle“ aus?
Tippe oben im Editor auf den Dateinamen, wähle „Kurzbefehle“ und kopiere den „Skriptpfad“. Füge dann in der App „Kurzbefehle“ die Pythona-Aktion „Python-Skript ausführen“ hinzu und trage den Pfad ein. Bei Bedarf kannst du Argumente hinzufügen und die zurückgegebene Textausgabe an nachfolgende Aktionen weitergeben.
Wie starte ich ein Skript mit einem Tippen vom Home-Bildschirm?
Öffne das Skript in Pythona, tippe oben im Editor auf den Dateinamen, wähle „Kurzbefehle“ und kopiere die „URL“.
Erstelle in der App „Kurzbefehle“ einen Kurzbefehl, füge die Aktion „URL öffnen“ hinzu und trage die kopierte URL ein.
Öffne die „Details“ des Kurzbefehls und wähle „Zum Home-Bildschirm“. Lege den Namen und das Symbol fest und tippe auf „Hinzufügen“.
Wenn du anschließend auf das Symbol auf dem Home-Bildschirm tippst, öffnet sich Pythona und führt das Skript aus.
Apples Anleitung zum Home-Bildschirm ansehenBibliotheken und Erweiterungen
Warum lassen sich manche Drittanbieter-Bibliotheken nicht installieren?
Der Paket-Manager installiert Drittanbieter-Bibliotheken, die als reine Python-Wheels veröffentlicht werden. Manche Bibliotheken sind nur als Quellcode verfügbar oder benötigen kompilierte Erweiterungen in C, C++, Rust oder ähnlichen Sprachen. Sie lassen sich daher nicht einfach wie auf einem Computer installieren. Native Bibliotheken wie NumPy und SciPy sind bereits vorkompiliert in der App enthalten.
Auch reine Python-Bibliotheken müssen mit Python 3.14 und iOS kompatibel sein. Wenn sie Systemfunktionen benötigen, die in dieser Umgebung nicht verfügbar sind, funktionieren sie möglicherweise trotzdem nicht.
Wichtige enthaltene Bibliotheken ansehenWarum ändern sich beim Installieren die Versionen von Abhängigkeiten oder werden Konflikte gemeldet?
Alle Projekte teilen sich die Umgebung der vom Benutzer installierten Pakete auf dem Gerät. Vorhandene Abhängigkeiten werden weiterverwendet, wenn sie die Anforderungen erfüllen. Andernfalls können selbst installierte reine Python-Abhängigkeiten auf eine neuere oder ältere Version umgestellt werden. Mit der App gelieferte Pakete werden nicht automatisch ersetzt.
Vor einem Versionswechsel prüft das Installationsprogramm die relevanten Abhängigkeiten, die andere installierte Pakete angeben. Bei Konflikten oder nicht unterstützten Anforderungen bricht es mit einer Erklärung ab. Es probiert nicht jede Versionskombination aus und kann nicht alle Kompatibilitätsprobleme erkennen.
Du kannst kompatible Versionen angeben, nicht mehr benötigte Pakete mit Konflikten deinstallieren und es erneut versuchen oder eigene Python-Skripte schreiben, um reine Python-Pakete herunterzuladen, bereitzustellen und ihre Abhängigkeiten zu verwalten. Für Aufrufe von pythona.packages.install() gelten weiterhin diese Regeln. Auch manuelle Installationen unterliegen den Kompatibilitätsgrenzen von Python und iOS. Starte Pythona neu, nachdem du ein bereits importiertes Paket ersetzt hast.
Werden installierte Bibliotheken über iCloud synchronisiert?
Nein. Über den Paket-Manager installierte Bibliotheken werden lokal auf dem jeweiligen Gerät gespeichert. Skripte im lokalen Speicher, in iCloud und in externen Ordnern verwenden dieselben Bibliotheken.
Wenn du ein Projekt über iCloud synchronisierst, musst du die benötigten Bibliotheken auf dem anderen Gerät separat installieren.
Welche Bibliotheken für iOS-Funktionen bietet Pythona und wie nutze ich sie?
Pythona enthält cocoa-py mit scene für Spiele, Animationen und interaktive Grafiken. Mit photos wählst du Fotos und Videos über die Systemauswahl aus oder speicherst sie in der Fotomediathek. audio bietet Wiedergabe, Aufnahme und Audioeffekte; coreml lädt Modelle für Core ML und führt die Inferenz auf dem Gerät aus.
Mit dem Paket pythona kannst du Funktionen der App nutzen: Über pythona.packages installierst du Drittanbieter-Pakete, über pythona.ai erstellst, liest und aktualisierst du Konfigurationen für benutzerdefinierte KI-Anbieter.
Für weitere iOS-Systemfunktionen empfehlen wir rubicon-objc, um native iOS-APIs aus Python aufzurufen. Dazu gehört auch UIKit für native Oberflächen. Beispiele zum Abrufen von Geräteinformationen und zur Verwendung von WKWebView findest du in der App.
cocoa-py ist Open Source und unterstützt auch macOS; die verfügbaren Funktionen hängen von der Plattform ab. Quellcode und API-Dokumentation findest du auf GitHub. Issues und Pull Requests sind willkommen.
Quellcode und Dokumentation von cocoa-py ansehenWas sollte ich für Spiele oder grafische Oberflächen verwenden?
Für 2D-Spiele, Animationen und Audiowiedergabe empfehlen wir pygame (die App enthält pygame-ce). pygame.mixer kann Musik oder Soundeffekte eigenständig abspielen, ohne ein Fenster zu erstellen.
Oberflächen oder Webspiele kannst du mit HTML, CSS und JavaScript erstellen und in Pythona über WKWebView anzeigen. Webinhalte lassen sich leicht auf anderen Plattformen wiederverwenden. Beim Wechsel auf eine andere Plattform musst du den Code zum Anzeigen in WKWebView und zur Verbindung mit Python oder iOS-Funktionen anpassen.
Für native iOS-Oberflächen kannst du UIKit über rubicon-objc aufrufen. Code mit UIKit bleibt von iOS abhängig.
Pythona unterstützt auch Tkinter, um vorhandene Tkinter-Skripte auszuführen oder einfache Werkzeuge zu erstellen. Die Oberfläche hat einen traditionellen Desktop-Stil. Wenn dir die Darstellung und Bedienung auf Mobilgeräten wichtiger sind, empfehlen wir eine Weboberfläche oder UIKit über rubicon-objc. Passende Beispiele findest du in der App.
Dateien
Wie tausche ich Dateien mit einem Computer aus?
Für Codeprojekte empfehlen wir Git: Klone dasselbe Remote-Repository in Pythona und auf deinem Computer. Erstelle nach Änderungen einen Commit, pushe ihn und hole die Änderungen anschließend auf dem anderen Gerät mit Pull ab.
Du kannst Dateien auch über iCloud Drive synchronisieren oder mit der Teilen-Funktion des Systems exportieren. Für den Austausch mit einem Mac kannst du auch AirDrop verwenden.
Du kannst in der App auch den „Dateiserver“ starten. Öffne dann auf einem Computer im selben lokalen Netzwerk die in der App angezeigte Adresse im Browser, um Dateien hoch- oder herunterzuladen. Der Dateiserver hat kein Anmeldepasswort. Verwende ihn nur in einem vertrauenswürdigen Netzwerk und stoppe ihn nach der Übertragung.
KI
Welche lokalen KI-Modelle kann ich in Python verwenden?
MLX: Die App enthält MLX, mit dem du zusammen mit mlx-lm kompatible Sprachmodelle ausführen kannst. Schau dir examples/llm_demo.py in der App an. Beim ersten Ausführen werden Abhängigkeiten über das Internet installiert und ein Modell von Hugging Face heruntergeladen. Dein Gerät muss MLX unterstützen und genügend Arbeitsspeicher haben. Geschwindigkeit und mögliche Modellgröße hängen von der Geräteleistung und dem Arbeitsspeicher ab.
Apple Foundation Models: Mit dem enthaltenen apple-fm-sdk kannst du Apples Modell auf dem Gerät aufrufen. Importiere es in Python mit import apple_fm_sdk. Du brauchst iOS / iPadOS 26 oder neuer, ein unterstütztes Gerät mit aktiviertem Apple Intelligence und ein einsatzbereites Systemmodell. Die Verfügbarkeit hängt auch von Sprache und Region ab. Die API-Nutzung ist in der unten verlinkten Dokumentation beschrieben.
Bei beiden Varianten läuft die Modellinferenz auf dem Gerät. Zum Herunterladen von Abhängigkeiten und Modellen ist eine Internetverbindung nötig. Auch Skripte oder Assistenten-Werkzeuge, die Onlinedienste nutzen, greifen auf das Netzwerk zu.
Nutzung des Foundation Models Python SDK ansehenWie verbinde ich ein lokales Modell mit dem KI-Assistenten?
Mit dem Open-Source-Projekt Pythona AI Setup kannst du Konfigurationen für Apple Foundation Models oder lokale MLX-Modelle im KI-Assistenten erstellen.
Klone das Projekt in Pythona und führe main.py im Projektstamm aus. Wähle auf der Seite ein Modell und Werkzeuge aus und füge die Konfiguration hinzu. Wähle dann die entsprechende Verbindung in den Einstellungen des KI-Assistenten aus. Die einzelnen Schritte findest du in der README des Projekts.
Ein MLX-Modell muss Werkzeugaufrufe unterstützen, damit es Assistenten-Werkzeuge zum Lesen und Schreiben von Dateien oder zum Ausführen von Python nutzen kann. Modelle ohne diese Unterstützung lassen sich für Gespräche verwenden, wenn alle Werkzeuge deaktiviert sind.
Pythona AI Setup und Anleitung ansehenWelche Dateien kann der KI-Assistent lesen und schreiben?
Der KI-Assistent verwendet den Arbeitsbereich der aktuellen Unterhaltung als Standard-Projektverzeichnis. Bevor du die erste Nachricht in einer neuen Unterhaltung sendest, kannst du über „Arbeitsbereich wechseln“ einen Ordner auswählen. Wenn du im Dateibrowser in ein anderes Verzeichnis wechselst, bleibt der Arbeitsbereich einer bestehenden Unterhaltung unverändert.
Der KI-Assistent kann auch run_python aufrufen, um Python-Code auszuführen und Dateien und Ordner innerhalb der App zu lesen, einschließlich Inhalten außerhalb des Arbeitsbereichs. Dieser Zugriff ist nicht auf den ausgewählten Arbeitsbereich beschränkt.
Unterstützt der KI-Assistent AGENTS.md?
Ja. Erstelle eine AGENTS.md im Stammverzeichnis des Arbeitsbereichs der aktuellen Unterhaltung. Darin kannst du das Projekt beschreiben, den Codestil festlegen und weitere Regeln für die Zusammenarbeit angeben.
Der Assistent liest diese Datei automatisch, wenn er eine neue Nachricht verarbeitet. Gespeicherte Änderungen werden wirksam, sobald du die nächste Nachricht sendest. Nur die AGENTS.md im Stammverzeichnis des Arbeitsbereichs wird automatisch geladen; gleichnamige Dateien in Unterverzeichnissen werden nicht automatisch zusammengeführt.
Wofür ist ein benutzerdefinierter Anbieter (JS Provider) gedacht?
Ein benutzerdefinierter Anbieter ermöglicht es dir, die Anbindung an KI-Dienste mit JavaScript anzupassen. Damit kannst du APIs, Authentifizierungsverfahren oder Dienstfunktionen nutzen, die integrierte Anbieter noch nicht unterstützen, und eigene Tools hinzufügen.
JavaScript wird hier verwendet, damit die Verbindung zu KI-Diensten, die Authentifizierung und die Verarbeitung von Antworten in einer eigenen Laufzeitumgebung erfolgen. So wird verhindert, dass diese Abläufe deine Python-Umgebung beeinträchtigen.
Eigene Tools können externe Dienste aufrufen oder run_python einbinden. Damit kann der Assistent Python-Skripte ausführen und darüber iOS-Funktionen nutzen.
Wenn die integrierten Anbieter deine Anforderungen bereits erfüllen, brauchst du nichts zusätzlich einzurichten. Für Erweiterungen findest du die Referenz „JavaScript API“ und Beispiele auf der Konfigurationsseite.
Kauf und Wiederherstellung
Muss ich Pro auf einem anderen Gerät erneut kaufen?
Nein. Melde dich auf dem anderen Gerät im App Store mit demselben Apple Account an, den du für den Kauf verwendet hast. Dann kannst du dein bereits gekauftes Pro weiterhin nutzen.
Wenn nach der Installation von Pythona auf einem neuen Gerät oder nach einer Neuinstallation weiterhin ein Hinweis auf die Testphase oder die Kaufseite erscheint, wurde dein Kaufstatus möglicherweise noch nicht synchronisiert. Stelle eine Internetverbindung her und tippe auf der Kaufseite auf „Käufe wiederherstellen“.
Das Wiederherstellen ist kostenlos. Solange du denselben Apple Account verwendest, wird dir das bereits gekaufte Pro auch dann nicht erneut berechnet, wenn du noch einmal auf den Kaufbutton tippst.
Warum kann ich Pro nach dem Wechsel des Apple Accounts nicht nutzen?
Dein Pro-Kauf ist mit dem Apple Account verknüpft, den du beim Kauf im App Store verwendet hast. Wenn du zu einem anderen Account wechselst, mit dem Pro nicht gekauft wurde, ist Pro möglicherweise nicht verfügbar. Wechsle im App Store zurück zum Account, den du für den Kauf verwendet hast, und tippe dann in Pythona auf „Käufe wiederherstellen“.
Wenn häufige Accountwechsel im App Store deine Nutzung von Pythona beeinträchtigen, kontaktiere uns.
Noch eine Frage?
Wenn du ein Problem meldest, gib bitte die App-Version, die Schritte zum Nachstellen und den vollständigen Fehlertext an.
Entwickler kontaktieren