Pergunta

Gostaria de saber se é possível criar um módulo executável a partir de um script Python. Eu preciso ter o máximo desempenho ea flexibilidade do script Python, sem a necessidade de executar no ambiente Python. Gostaria de usar este código a carga sobre os módulos do usuário procura personalizar a minha candidatura.

Foi útil?

Solução

  • pirex que compila python como fonte de módulos de extensão de python
  • rpython que lhe permite compilar python com algumas restrições para vários backends como C, LLVM, .Net, etc.
  • Há também derramou-pele que se traduz python para C ++, mas eu não posso dizer se é qualquer bom .
  • PyPy implementa um compilador JIT que tentativas para optimizar tempo de execução por traduzindo pedaços do que está sendo executado em tempo de execução para código de máquina, se você escrever para o intérprete PyPy que pode ser um caminho viável.
  • O mesmo autor que está trabalhando em JIT no PyPy escreveu psyco anteriormente que otimiza python no interpretador CPython .

Outras dicas

Você pode usar algo como py2exe para compilar seu script python em um exe, ou congelar por um binário Linux.

ver: Como posso criar um aplicativo de GUI de plataforma cruzada diretamente executável usando Python

Eu tive muito sucesso usando Cython , que é baseado no e estende pirex:

Cython é uma linguagem que faz escrever extensões C para o Python linguagem tão fácil quanto o próprio Python. Cython é baseado na bem-conhecida Pyrex, mas mais suportes ponta funcionalidade e otimizações.

A linguagem Cython está muito perto a linguagem Python, mas Cython Além disso suporta chamando C funções e declarando tipos C sobre variáveis ??e atributos de classe. este permite que o compilador para gerar muito código C eficiente a partir do código Cython.

Isso faz Cython a linguagem ideal para embrulhar para bibliotecas C externas, e para os módulos rápidos C que aceleram a execução de código Python.

Eu acho que você pode usar Jython para python de compilação para bytecode Java, e depois compilar que, com GCJ.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top