FAQ

Preguntas frecuentes

Sobre la ejecución de código, las bibliotecas y extensiones, la transferencia de archivos y el asistente de IA.

01

Ejecución de código

¿Por qué «Detener» no detiene la ejecución de inmediato?

«Detener» solicita una interrupción, pero no puede interrumpir todas las operaciones de inmediato. Las llamadas a time.sleep(), las esperas de respuestas de red o de bloqueos y algunos cálculos de bibliotecas nativas deben terminar antes de que la ejecución pueda detenerse. Si se está importando un módulo, también hay que esperar a que termine la importación.

Si la ejecución sigue sin detenerse después de un tiempo, guarda tus archivos, cierra Pythona desde el selector de apps de iOS y vuelve a abrirla.

¿Por qué se cierra la app al ejecutar un script?

Si un script termina su ejecución con quit(), exit() o sys.exit(), Pythona cierra toda la app de forma predeterminada.

En «Ajustes → quit() / exit()», cambia «Salir de Pythona» por «Finalizar solo la ejecución actual». Así terminará solo la ejecución en curso y la app permanecerá abierta.

Al procesar arreglos grandes o ejecutar modelos grandes, un uso excesivo de memoria puede hacer que iOS cierre directamente la app, sin que necesariamente aparezca un error de Python. El ajuste «quit() / exit()» no controla este tipo de cierre. Prueba a reducir la cantidad de datos o el tamaño del modelo, o a procesar los datos por lotes.

Si el problema se repite, envíanos el código y los pasos necesarios para reproducirlo.

¿Cómo puedo pasar argumentos a un script?

Mantén pulsado el botón de ejecución del editor y selecciona «Ejecutar con argumentos...». Los argumentos se pasan al script mediante sys.argv[1:]. En «Editar configuraciones de ejecución...», dentro del mismo menú, puedes guardar los argumentos que uses con frecuencia y establecer una configuración predeterminada.

¿Cómo puedo ejecutar un script desde la app Atajos?

Toca el nombre del archivo en la parte superior del editor, selecciona «Atajos» y copia la «Ruta del script». Después, añade la acción «Ejecutar script de Python» de Pythona en la app Atajos e introduce la ruta. Si lo necesitas, puedes añadir argumentos y pasar la salida de texto que devuelve la acción a las acciones siguientes.

02

Bibliotecas y extensiones

¿Por qué no puedo instalar algunas bibliotecas de terceros?

El Administrador de paquetes instala bibliotecas de terceros distribuidas como wheels de Python puro. Algunas bibliotecas solo ofrecen código fuente o necesitan extensiones compiladas en C, C++, Rust u otros lenguajes, por lo que no se pueden instalar directamente como en una computadora. Las bibliotecas nativas como NumPy y SciPy vienen precompiladas e incluidas en la app.

Las bibliotecas de Python puro también deben ser compatibles con Python 3.14 y iOS. Si dependen de funciones del sistema que no están disponibles en este entorno, es posible que no funcionen.

Ver las principales bibliotecas incluidas

¿Las bibliotecas instaladas se sincronizan mediante iCloud?

No. Las bibliotecas instaladas con el Administrador de paquetes se guardan localmente en el dispositivo actual. Los scripts del almacenamiento local, de iCloud y de las carpetas externas comparten esas mismas bibliotecas.

Después de sincronizar un proyecto mediante iCloud, debes instalar sus dependencias por separado en el otro dispositivo.

¿Qué extensiones propias ofrece Pythona y cómo puedo usar las funciones de iOS?

Pythona incluye scene para juegos, animaciones y gráficos interactivos. photos permite elegir fotos y videos mediante el selector del sistema o guardarlos en la fototeca. audio ofrece reproducción, grabación y efectos de audio; coreml carga modelos de Core ML y ejecuta la inferencia en el dispositivo.

El paquete pythona permite usar funciones de la app: con pythona.packages puedes instalar paquetes de terceros y con pythona.ai crear, consultar y actualizar configuraciones de proveedores de IA personalizados.

Estos módulos dependen del entorno de ejecución de Pythona. Al pasar a otro entorno de Python, tendrás que sustituir o adaptar las llamadas correspondientes. Los módulos con el mismo nombre en otras apps pueden tener API diferentes.

Para acceder a más funciones del sistema iOS, recomendamos rubicon-objc para llamar a las API nativas de iOS desde Python, incluido UIKit para crear interfaces nativas. La app incluye ejemplos para consultar información del dispositivo y usar WKWebView.

Estas extensiones propias de Pythona no cuentan actualmente con documentación independiente de la API. Puedes consultar los ejemplos de la app, el código fuente accesible de los módulos de Python y la ayuda integrada de los módulos. También puedes pedir al asistente de IA que revise estos recursos antes de escribir y ejecutar código.

¿Qué debería usar para crear juegos o interfaces gráficas?

Para juegos 2D, animaciones y reproducción de audio, recomendamos pygame (la app incluye pygame-ce). pygame.mixer puede reproducir música o efectos de sonido por sí solo, sin crear una ventana.

Puedes crear interfaces o juegos web con HTML, CSS y JavaScript, y mostrarlos en Pythona mediante WKWebView. El contenido web es fácil de reutilizar en otras plataformas. Al pasar a otra plataforma, tendrás que adaptar el código que muestra la página en WKWebView y la conecta con Python o las funciones de iOS.

Si necesitas una interfaz nativa de iOS, puedes llamar a UIKit mediante rubicon-objc. El código que usa UIKit sigue dependiendo de iOS.

Pythona también admite Tkinter para ejecutar scripts de Tkinter existentes o crear herramientas sencillas. La interfaz tiene un estilo de escritorio tradicional. Si das más importancia a la apariencia y la interacción en dispositivos móviles, recomendamos una interfaz web o UIKit mediante rubicon-objc. La app incluye ejemplos.

03

Archivos

¿Cómo puedo intercambiar archivos con una computadora?

Para proyectos de código, recomendamos Git: clona el mismo repositorio remoto en Pythona y en tu computadora. Tras hacer cambios, crea un commit y envíalo con push; luego, en el otro dispositivo, usa pull para obtener las actualizaciones.

También puedes sincronizar archivos mediante iCloud Drive o exportarlos con la función de compartir del sistema. Para intercambiar archivos con una Mac, puedes usar AirDrop.

Puedes activar el «Servidor de archivos» en la app y abrir la dirección que muestra desde el navegador de una computadora conectada a la misma red local para subir o descargar archivos. El servidor no tiene contraseña de acceso. Úsalo en una red de confianza y detén el servicio cuando termines la transferencia.

04

Asistente de IA

¿Qué archivos puede leer y escribir el asistente de IA?

El asistente de IA utiliza el área de trabajo de la conversación actual como directorio predeterminado del proyecto. Antes de enviar el primer mensaje de una conversación nueva, puedes elegir una carpeta con «Cambiar área de trabajo». Cambiar de directorio en el explorador de archivos no modifica el área de trabajo de una conversación existente.

El asistente de IA también puede llamar a run_python para ejecutar código Python y leer archivos y carpetas de la app, incluido el contenido que está fuera del área de trabajo. Este acceso no está limitado al área de trabajo seleccionada.

¿El asistente de IA admite AGENTS.md?

Sí. Crea un archivo AGENTS.md en la raíz del área de trabajo de la conversación actual para incluir información del proyecto, el estilo del código y otras pautas de colaboración.

El asistente lee este archivo automáticamente al procesar cada mensaje nuevo. Los cambios guardados se aplican la próxima vez que envíes un mensaje. Solo se carga automáticamente el archivo AGENTS.md de la raíz del área de trabajo; los archivos con el mismo nombre en subdirectorios no se combinan automáticamente.

¿Para qué sirve un proveedor personalizado (JS Provider)?

Un proveedor personalizado permite definir con JavaScript cómo conectarse a los servicios de IA. Puedes utilizar API, métodos de autenticación o funciones del servicio que los proveedores integrados todavía no admiten, y añadir herramientas personalizadas.

Aquí se utiliza JavaScript para gestionar la conexión a los servicios de IA, la autenticación y el procesamiento de respuestas en un entorno de ejecución independiente, evitando que esta lógica de integración interfiera con tu entorno de Python.

Las herramientas personalizadas pueden llamar a servicios externos o integrar run_python para que el asistente ejecute scripts de Python y acceda a las funciones de iOS a través de ellos.

Si los proveedores integrados ya cubren tus necesidades, no hace falta ninguna configuración adicional. Para ampliar las funciones, consulta la documentación «JavaScript API» y los ejemplos de la página de configuración.

¿Tienes otra pregunta?

Al informar de un problema, incluye la versión de la app, los pasos para reproducirlo y el mensaje de error completo.

Contactar al desarrollador