Portanto, é um novo milênio; A Apple acenou com a mão; agora é legal incluir um interpretador Python em um aplicativo para iPhone (App Store).
Como fazer isso? Toda a discussão existente (sem surpresa) refere-se ao jailbreak. (Pergunta antiga: Posso escrever aplicativos nativos para iPhone usando Python )
Meu objetivo aqui não é escrever um aplicativo PyObjC, mas escrever um aplicativo ObjC normal que execute Python como uma biblioteca incorporada. O código Python então chamará de volta para o código Cocoa nativo. É o padrão "lógica de controle é código Python".
Existe um guia para construir o Python no XCode, para que meu aplicativo para iPhone possa vinculá-lo? De preferência, um Python simplificado, já que não precisarei de 90% da biblioteca padrão.
Provavelmente posso descobrir o threading e a API de extensão Python; Eu fiz isso no MacOS. Mas apenas usando compiladores de linha de comando, não XCode.
Respostas:
Realmente não importa como você constrói Python - você não precisa construí-lo no Xcode, por exemplo - mas o que importa é o produto dessa construção.
Ou seja, você precisará construir algo como libPython.a que pode ser vinculado estaticamente ao seu aplicativo. Depois de ter um .a, ele pode ser adicionado ao projeto Xcode de seu (s) aplicativo (s) e, a partir daí, será vinculado e assinado como o resto do seu aplicativo.
IIRC (faz um tempo desde que eu construí o python manualmente) o python pronto para usar irá construir um libPython.a (e um monte de outras bibliotecas), se você configurá-lo corretamente.
Claro, seu segundo problema será a compilação cruzada de python para ARM de sua caixa 86 . Python é um projeto baseado em autoconf e autoconf é um pé no saco para compilação cruzada.
Como você afirma corretamente, torná-lo pequeno será crítico.
Também não é surpreendente que você não seja a primeira pessoa a querer fazer isso, mas não para o iOS. Python foi espremido em dispositivos muito menos capazes do que aqueles que executam iOS. Eu encontrei um tópico com vários links ao pesquisar sobre; ele pode ser útil .
Além disso, você pode querer entrar na lista pyobjc-dev . Embora você não esteja visando um aplicativo baseado em PyObjC (o que, aliás, é uma boa ideia - PyObjC tem um longo caminho a percorrer antes de ser compatível com iOS), a comunidade PyObjC tem discutido isso e Ronald, de qualquer um, é provavelmente a pessoa mais experiente nesta área específica. Observe que o PyObjC terá que resolver o problema do Python embutido no iOS antes de portar o PyObjC. Seu pré-requisito é sua exigência, por assim dizer.
fonte
Coloquei um script muito bruto no github que busca e constrói o python2.6.5 para iPhone e simulador.
http://github.com/cobbal/python-for-iphone
Trabalho em progresso
Atualização um tanto deprimente quase 2 anos depois: (copiado de README no github)
fonte
pyobjc
for difícil de compilar, é viável usarctypes
? Nesse caso, essa resposta pode ser uma pista (perceber que seria apenas o início de um trabalho grande e doloroso, mas ainda assim).Eu também comecei um projeto assim. Ele vem com seu próprio script de compilação simplificado, então não há necessidade de mexer com o autoconf para obter sua biblioteca estática compilada cruzada. Ele é capaz de construir uma biblioteca estática de Python completamente livre de dependências com alguns módulos comuns. Deve ser facilmente extensível.
https://github.com/albertz/python-embedded/
fonte