migração do aplicativo python de python-2.6 para python-3

0

Estou migrando meu aplicativo python de python-2.6 para python 3. Meu aplicativo foi desenvolvido no sistema Ubuntu 10.04 tendo suporte a python 2.6. Agora eu quero fazê-lo funcionar no Ubuntu 14.04 com o python 3. Posso fazer o aplicativo python totalmente independente do python-2?

Por favor, compartilhe suas opiniões / ideias.

Aprecie sua ajuda !!

Obrigado Mrudula

    
por mrudula 11.11.2015 / 15:03

1 resposta

1

Você pode? Claro.

Considere por um momento que o Python 2 será suportado em 2020 oficialmente e possivelmente por mais tempo não oficialmente. Você precisa para portar isso para o Python 3? Você pode ser preguiçoso e deixar a mrudula de 2020 descobrir isso.

Tenho certeza de que você sabe que o Python 2 e 3 não são diretamente compatíveis. Você provavelmente terá que fazer algumas alterações na porta entre eles. Existem ferramentas como 2to3 (incluídas no Ubuntu) que facilitam muito o - pelo menos mais automatizado - mas provavelmente ainda estão usando bibliotecas que dependem do Python 2.x que você Preciso substituir.

Ou você pode ficar com o Python 2.7.

De qualquer forma, passei pelo mesmo processo que você está fazendo agora com vários pequenos aplicativos do Django. A maior melhoria que eu posso sugerir (se você ainda não estiver fazendo isso) é mudar para um virtualenv (o módulo venv no Py3k). Manter as coisas separadas do sistema permitiu que muitos cabelos puxados voltassem a crescer.

Eu sugeriria o seguinte itinerário:

  1. Instale o 14.04 em outra máquina (VM, qualquer que seja)
  2. Crie um virtualenv do Python 2 para o seu aplicativo e ative-o.

    sudo apt-get install python-virtualenv
    /usr/bin/virtualenv venv
    source ./venv/bin/activate
    pip install -U pip
    
  3. Instale todos os requisitos que você souber necessários com pip . Se você tiver ativado um virtualenv, ele será instalado localmente, sem necessidade de sudo .

  4. Obter coisas funcionando . Este é um processo iterativo de executá-lo até perceber que você está perdendo alguma coisa.
  5. Quando tiver certeza de que tudo está funcionando e você tiver todos os seus requisitos, descarregue-os (e restrições de versão) em um arquivo chamado requirements.txt

Se você está feliz com o Python 2, pode parar por aí. Migre isso para um servidor real (se já não estiver em um) e confirme seu controle requirements.txt para versão para que você possa restaurar seu ambiente muito rapidamente no futuro, se for necessário.

Se você quiser continuar no Python 3, o caminho é muito mais claro:

  1. Exclua seu virtualenv do Python 2, crie um venv do 3 do Python e instale seus requisitos:

    deactivate
    /usr/bin/python3 -mvenv venv
    pip install -U pip
    pip install -Ur requirements
    
  2. Libere 2to3 (e outras ferramentas) em sua origem e termine a porta manualmente. Certifique-se de ter um backup do que você já tem. Não é uma ferramenta muito complicada (veja 2to3 --help ), mas falando normalmente, isso deve ser suficiente para você ir (lembre-se de fazer o backup primeiro, isso irá gravar mudanças):

    2to3 -wf all .
    
por Oli 11.11.2015 / 15:32