Entonces es un nuevo milenio; Apple ha hecho un gesto con la mano; ahora es legal incluir un intérprete de Python en una aplicación de iPhone (App Store).
¿Cómo se hace esto? Toda la discusión existente (como era de esperar) se refiere al jailbreak. (Pregunta anterior: ¿Puedo escribir aplicaciones nativas para iPhone usando Python? )
Mi objetivo aquí no es escribir una aplicación PyObjC, sino escribir una aplicación ObjC normal que ejecute Python como una biblioteca incrustada. El código Python luego volverá a llamar al código nativo Cocoa. Es el patrón "la lógica de control es código Python".
¿Existe una guía para construir Python en XCode, de modo que mi aplicación de iPhone pueda vincularlo? Preferiblemente un Python simplificado, ya que no necesitaré el 90% de la biblioteca estándar.
Probablemente pueda averiguar el subproceso y la API de extensión de Python; Lo he hecho en MacOS. Pero solo usando compiladores de línea de comandos, no XCode.
Respuestas:
Realmente no importa cómo construya Python, no necesita construirlo en Xcode, por ejemplo, pero lo que importa es el producto de esa construcción.
Es decir, necesitará crear algo como libPython.a que se pueda vincular estáticamente a su aplicación. Una vez que tenga un .a, se puede agregar al proyecto Xcode para su (s) aplicación (es) y, desde allí, se vinculará y firmará como el resto de su aplicación.
IIRC (ha pasado un tiempo desde que construí Python a mano) la Python lista para usar construirá una libPython.a (y un montón de otras bibliotecas), si la configura correctamente.
Por supuesto, su segundo problema será la compilación cruzada de Python para ARM desde su caja 86 . Python es un proyecto basado en autoconf y autoconf es un dolor en el trasero para la compilación cruzada.
Como dice correctamente, hacerlo pequeño será fundamental.
Tampoco es sorprendente que no seas la primera persona en querer hacer esto, pero no para iOS. Python se ha introducido en dispositivos mucho menos capaces que los que ejecutan iOS. Encontré un hilo con un montón de enlaces al buscar en Google; que podría ser útil .
Además, es posible que desee unirse a la lista pyobjc-dev . Si bien no está apuntando a una aplicación basada en PyObjC (lo cual, por cierto, es una buena idea; PyObjC tiene un largo camino por recorrer antes de que sea compatible con iOS), la comunidad PyObjC ha estado discutiendo esto y Ronald, de cualquiera, es probablemente la persona con más conocimientos en esta área en particular. Tenga en cuenta que PyObjC tendrá que resolver el problema de Python integrado en iOS antes de portar PyObjC. Su requisito previo es su requisito, por así decirlo.
fuente
Puse una secuencia de comandos muy aproximada en github que busca y compila python2.6.5 para iPhone y simulador.
http://github.com/cobbal/python-for-iphone
Trabajo en progreso
Actualización algo deprimente casi 2 años después: (copiado de README en github)
fuente
pyobjc
es difícil de compilar, ¿es factible de usarctypes
? En ese caso, esta respuesta podría ser una pista (darse cuenta de que sería solo el comienzo de un trabajo grande y doloroso, pero aún así).También comencé un proyecto de este tipo. Viene con su propio script de compilación simplificado, por lo que no hay necesidad de perder el tiempo con autoconf para obtener su biblioteca estática de compilación cruzada. Es capaz de construir una biblioteca estática de Python completamente libre de dependencias con algunos módulos comunes. Debería ser fácilmente extensible.
https://github.com/albertz/python-embedded/
fuente