Compile o pacote binário deb da fonte python

1

Eu criei o pacote python (usando Ubuntu Quickly ) e quero criar deb package. Infelizmente constrói rapidamente o pacote com arquivos python de origem (.py) e não quero incluir arquivos de origem. O mesmo problema está no Bazaar plugin para criação de pacotes.

Como posso fazer o pacote deb sem fontes que compila os arquivos .py durante a instalação, para que não haja arquivos fonte no sistema?

    
por marcinpz 27.03.2012 / 13:41

2 respostas

6

Python é uma linguagem de script interpretada. Você não apenas distribui os arquivos .pyc intermediários porque eles são compilados para o seu sistema e não farão sentido em outro lugar. Você distribui a fonte e isso é compilado na hora.

Isso não quer dizer que você não pode simplesmente distribuir arquivos .pyc. PEP 3147 permite isso e define uma estrutura, mas tem um custo e eu não sou mesmo que pare de regenerar a fonte (através de vários métodos de introspecção) - mas não é para isso que o Quickly foi projetado; não vai ajudar você a construir um pacote como esse.

Se você está tentando distribuir um aplicativo de código fechado, há coisas como py2exe (somente para Windows) e bbfreeze (todos) mas nenhum deles é perfeito ou completamente irreversível. Você pode consultar os métodos de ofuscação se quiser proteger ainda mais sua fonte.

    
por Oli 27.03.2012 / 14:01
2

Não há como esconder o código-fonte do Python e impedir que os usuários saibam o que você faz com seus sistemas. No entanto, isso não significa que o programa tenha que ser Open Source. Isso depende da licença e você pode usar a licença desejada. Ser capaz de ler o código-fonte não significa que o usuário tenha permissão para editá-lo ou redistribuí-lo. Isso é contigo. Isso é verdade para todos os idiomas de alto nível. Aplicativos da Web, por exemplo, sempre têm seu código-fonte visível para o usuário. Isso não significa que você tem permissão para usá-lo em outros projetos sem a permissão dos desenvolvedores.

Você pode querer dar uma olhada no idioma Geanie. É uma nova linguagem que possui recursos semelhantes ao Java / C #, mas com uma sintaxe que se assemelha ao Python. Genie compila para C, o que significa que é independente de plataforma, mas também que é extremamente rápido. E C, é claro, compila para código nativo.

Infelizmente, o Quickly ainda não possui modelos para o Genie.

    
por Jo-Erlend Schinstad 27.03.2012 / 14:47