FAQ

Questions fréquentes

À propos de l’exécution du code, des bibliothèques et extensions, du transfert de fichiers et de l’assistant IA.

01

Exécution du code

Pourquoi le bouton « Arrêter » n’arrête-t-il pas l’exécution immédiatement ?

Le bouton « Arrêter » demande une interruption, mais ne peut pas interrompre toutes les opérations immédiatement. Les appels à time.sleep(), les attentes d’une réponse réseau ou d’un verrou et certains calculs de bibliothèques natives doivent se terminer avant que l’exécution puisse s’arrêter. L’importation d’un module doit également se terminer avant l’arrêt.

Si l’exécution ne s’arrête toujours pas après un certain temps, enregistrez vos fichiers, fermez Pythona depuis le sélecteur d’apps d’iOS, puis rouvrez l’app.

Pourquoi l’app se ferme-t-elle pendant l’exécution d’un script ?

Si un script termine son exécution avec quit(), exit() ou sys.exit(), Pythona ferme toute l’app par défaut.

Dans « Réglages → quit() / exit() », remplacez « Quitter Pythona » par « Terminer uniquement l’exécution actuelle ». Seule l’exécution en cours se terminera et l’app restera ouverte.

Lors du traitement de grands tableaux ou de l’exécution de modèles volumineux, une utilisation excessive de la mémoire peut amener iOS à fermer directement l’app, sans forcément afficher d’erreur Python. Le réglage « quit() / exit() » n’a aucun effet sur ce type de fermeture. Essayez de réduire la quantité de données ou la taille du modèle, ou de traiter les données par lots.

Si le problème se répète, joignez à votre signalement le code et les étapes permettant de le reproduire.

Comment passer des arguments à un script ?

Maintenez le bouton d’exécution de l’éditeur enfoncé, puis choisissez « Exécuter avec des arguments... ». Les arguments sont transmis au script via sys.argv[1:]. L’option « Modifier les configurations d’exécution... » du même menu permet d’enregistrer les arguments courants et de définir une configuration par défaut.

Comment exécuter un script depuis l’app Raccourcis ?

Touchez le nom du fichier en haut de l’éditeur, choisissez « Raccourcis », puis copiez le « Chemin du script ». Dans l’app Raccourcis, ajoutez l’action Pythona « Exécuter le script Python » et renseignez le chemin. Vous pouvez ajouter des arguments si nécessaire et transmettre la sortie texte renvoyée par l’action aux actions suivantes.

02

Bibliothèques et extensions

Pourquoi certaines bibliothèques tierces ne s’installent-elles pas ?

Le Gestionnaire de paquets installe les bibliothèques tierces distribuées sous forme de wheels en Python pur. Certaines bibliothèques ne proposent que du code source ou nécessitent des extensions compilées en C, C++, Rust ou dans d’autres langages. Elles ne peuvent donc pas être installées directement comme sur un ordinateur. Les bibliothèques natives comme NumPy et SciPy sont précompilées et incluses dans l’app.

Même les bibliothèques en Python pur doivent être compatibles avec Python 3.14 et iOS. Elles peuvent ne pas fonctionner si elles dépendent de fonctions système indisponibles dans cet environnement.

Voir les principales bibliothèques incluses

Les bibliothèques installées sont-elles synchronisées via iCloud ?

Non. Les bibliothèques installées avec le Gestionnaire de paquets sont stockées localement sur l’appareil. Les scripts du stockage local, d’iCloud et des dossiers externes utilisent ces mêmes bibliothèques.

Après avoir synchronisé un projet via iCloud, vous devez installer séparément ses dépendances sur l’autre appareil.

Quelles extensions propres à Pythona sont disponibles et comment utiliser les fonctions d’iOS ?

Pythona intègre scene pour les jeux, les animations et les graphismes interactifs. photos permet de choisir des photos et des vidéos via le sélecteur système ou de les enregistrer dans la photothèque. audio propose la lecture, l’enregistrement et les effets audio ; coreml charge des modèles Core ML et exécute l’inférence sur l’appareil.

Le paquet pythona permet d’utiliser les fonctions de l’app : pythona.packages sert à installer des paquets tiers, et pythona.ai à créer, consulter et mettre à jour les configurations de fournisseurs d’IA personnalisés.

Ces modules dépendent de l’environnement d’exécution fourni par Pythona. Pour passer à un autre environnement Python, il faut remplacer ou adapter les appels concernés. Des modules portant le même nom dans d’autres apps peuvent avoir des API différentes.

Pour accéder à d’autres fonctions système d’iOS, nous recommandons rubicon-objc afin d’appeler les API natives d’iOS depuis Python, notamment UIKit pour créer des interfaces natives. Vous trouverez dans l’app des exemples pour obtenir des informations sur l’appareil et utiliser WKWebView.

Ces extensions propres à Pythona ne disposent actuellement pas de documentation API distincte. Vous pouvez consulter les exemples de l’app, le code source accessible des modules Python et l’aide intégrée aux modules. Vous pouvez aussi demander à l’assistant IA de consulter ces ressources avant d’écrire et d’exécuter du code.

Que choisir pour créer des jeux ou des interfaces graphiques ?

Pour les jeux 2D, les animations et la lecture audio, nous recommandons pygame (l’app intègre pygame-ce). pygame.mixer peut lire de la musique ou des effets sonores sans créer de fenêtre.

Vous pouvez créer des interfaces ou des jeux web avec HTML, CSS et JavaScript, puis les afficher dans Pythona avec WKWebView. Le contenu web se réutilise facilement sur plusieurs plateformes. Pour passer à une autre plateforme, il faudra adapter le code d’affichage dans WKWebView et celui qui relie la page à Python ou aux fonctions d’iOS.

Pour une interface native iOS, vous pouvez appeler UIKit via rubicon-objc. Le code utilisant UIKit reste dépendant d’iOS.

Pythona prend aussi en charge Tkinter pour exécuter des scripts Tkinter existants ou créer des outils simples. L’interface conserve un style de bureau traditionnel. Si vous privilégiez l’apparence et les interactions sur mobile, nous recommandons une interface web ou UIKit via rubicon-objc. Des exemples sont disponibles dans l’app.

03

Fichiers

Comment échanger des fichiers avec un ordinateur ?

Pour les projets de code, nous recommandons Git : clonez le même dépôt distant dans Pythona et sur votre ordinateur. Après vos modifications, créez un commit et poussez-le vers le dépôt distant, puis récupérez les mises à jour sur l’autre appareil avec un pull.

Vous pouvez aussi synchroniser les fichiers via iCloud Drive ou les exporter avec la fonction de partage du système. Pour les échanges avec un Mac, AirDrop est également disponible.

Vous pouvez activer le « Serveur de fichiers » dans l’app, puis ouvrir l’adresse affichée dans un navigateur sur un ordinateur connecté au même réseau local, afin d’envoyer ou de télécharger des fichiers. Le serveur n’a pas de mot de passe de connexion. Utilisez-le sur un réseau de confiance et arrêtez-le une fois le transfert terminé.

04

Assistant IA

Quels fichiers l’assistant IA peut-il lire et écrire ?

L’assistant IA utilise l’espace de travail de la conversation en cours comme dossier de projet par défaut. Avant d’envoyer le premier message d’une nouvelle conversation, vous pouvez choisir un dossier avec « Changer d'espace de travail ». Changer de dossier dans le navigateur de fichiers ne modifie pas l’espace de travail d’une conversation existante.

L’assistant IA peut également appeler run_python pour exécuter du code Python et lire des fichiers et dossiers dans l’app, y compris en dehors de l’espace de travail. Cet accès n’est pas limité à l’espace de travail sélectionné.

L’assistant IA prend-il en charge AGENTS.md ?

Oui. Créez un fichier AGENTS.md à la racine de l’espace de travail de la conversation en cours pour y préciser la description du projet, le style de code et les autres consignes de collaboration.

L’assistant lit automatiquement ce fichier à chaque nouveau message traité. Une fois vos modifications enregistrées, elles prennent effet au prochain message envoyé. Seul le fichier AGENTS.md à la racine de l’espace de travail est chargé automatiquement ; les fichiers du même nom dans les sous-dossiers ne sont pas fusionnés automatiquement.

À quoi sert un fournisseur personnalisé (JS Provider) ?

Un fournisseur personnalisé permet de définir en JavaScript la manière de se connecter aux services d’IA. Vous pouvez ainsi utiliser des API, des méthodes d’authentification ou des fonctionnalités que les fournisseurs intégrés ne prennent pas encore en charge, et ajouter des outils personnalisés.

JavaScript est utilisé ici pour gérer la connexion aux services d’IA, l’authentification et le traitement des réponses dans un environnement d’exécution distinct, afin que cette logique d’intégration ne perturbe pas votre environnement Python.

Les outils personnalisés peuvent appeler des services externes ou intégrer run_python pour que l’assistant exécute des scripts Python et accède aux fonctions d’iOS via ces scripts.

Si les fournisseurs intégrés répondent déjà à vos besoins, aucune configuration supplémentaire n’est nécessaire. Pour aller plus loin, consultez la documentation « JavaScript API » et les exemples de la page de configuration.

Une autre question ?

Pour signaler un problème, indiquez la version de l’app, les étapes pour le reproduire et le message d’erreur complet.

Contacter le développeur