• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

David Pintassilgo

não é py2exe mas py2 outra coisa...

10 mensagens neste tópico

OMG! O que eu procurava era como fazer um excutavel de um programa em python mas para linux, ou seja, qq coisa do tipo do py2exe mas para linux?

(expliquei-me?)  :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas para quê? ;)

Não é mais fácil instalar o interpretador? Além disso praticamente todas as instalações de Linux já vêm com um interpretador instalado. Em MacOS X, o interpretador também já vem de raiz.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ya.

Um ficheiro binário...

Pode ser util, mas olha que tudo quanto é distribuição vem com o python.

EDIT: o triton foi mais rápido.

Lembrei-me agora de outra solução. Mais de metade das instalações de linux usam um sistema de pacotes deb ou rpm. Podes empacotar o teu script nesses formados e definir o python, e os módulos necessários como dependencias.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas para quê? ;)

Para o código não ficar acessivel

Pode ser util, mas olha que tudo quanto é distribuição vem com o python.

Mas é para o código não ficar acessivel.

Como é que se criam pacotes .deb ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para o código não ficar acessivel

Distribuis o ficheiro .pyc, ou seja, o bytecode compilado do programa. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas para quê? ;)

Para o código não ficar acessivel

Pode ser util, mas olha que tudo quanto é distribuição vem com o python.

Mas é para o código não ficar acessivel.

Como é que se criam pacotes .deb ?

Se importares um script .py é criado um .pyc que é python compilado. Assim, podes criar um pequeno script para compilar o teu .py.

Só tens que por este código:

import oteumodulo

e corre-lo.

Agora... ainda não percebi, isto não compila para binário, compila para bytecode. Eu já andei a perguntar sobre isto e disseram-me: ah e tal... um gajo "decompila" o bytecode e obtem o código inicial. O que eu achei bizarro, e toda a gente dizia isso mas a verdade é que eu nunca vi isso ser feito.

Eu tambem estou curioso em relação a isto:

Há alguma forma de compilar python para binário?

O triton é que costuma estar sempre informado destas cenas.

Para a discussão não tomar outro sentido vamos todos assumir que fazer um disassemble de um binario NÃO é ter acesso ao código fonte. Se não ninguem se entende.

EDIT:outra vez, triton: 2-0

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom,... acho que já vi o que preciso. Só preciso de compliar o programar ate'aqui tudo bem.

Ou seja,.. vou á consola, fasso:

import nomedofile.py

Aparece-me depois:

nomedofile.pyo

é só usar o novo file em vez do antigo.

o file .pyo é o tal que não dá para ver o código mas que supostamente é possível alguém 'estransformar' aquilo outra vez em legível, certo?

edit:

upss.... ao fazer isto 'o gajo escavacou-me' o conteudo todo do .py inicial mas tenho um .py.bak que me apareceu ao lado. é suposto isto assim ser?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

usaste o import da shell e nao o do python.

man import

Para fazeres isso tem que ser na consola do python e não deves por o ".py" a seguir ao nome do módulo.

python
import nomedofile

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas como eu fiz não tem nada de mal pois nao? é que aparentemente funcionou....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quanto a decompilar o bytecode, isso é possível em qualquer linguagem do género (.NET, Java, Python...) mas devido ao código não ser 100% igual ao original (apenas é gerado código compatível) e nem as variáveis nem funções terem nomes, torna-se muito difícil reconstruir o programa a partir desse código.

Se formos a pensar, o mesmo também é possível com qualquer executável a partir de um disassembler.

Dito isto, existem técnicas para dificultar o uso de "descompiladores", como a obfuscação de código.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora