Crie um ambiente virtual do Python 3

11

Instalei python3-virtualenv no Lubuntu 15.1 usando o pacote oficial do Ubuntu apt-get install python3-virtualenv . A documentação oficial indica que um simples virtualenv . no meu diretório de projeto deve ser suficiente para criar o venv. Isso não faz nada, porque which virtualenv não faz nada. (Nada de which python-virtualenv e which python3-virtualenv também).

As informações do pacote, uma vez instaladas, dizem que instalou /usr/lib/python3/dist-packages/virtualenv.py , então invoco isso para o python3. Isso me dá isso:

$ python3 /usr/lib/python3/dist-packages/virtualenv.py .
Running virtualenv with interpreter /usr/bin/python2
New python executable in ./bin/python2
Also creating executable in ./bin/python
Installing setuptools, pip...done.

Sim, quando eu olho, tudo em ./bin é python2. O python3-virtualenv do ubuntu é um pacote fictício para python2?

A documentação oficial do Python diz usar um pacote diferente: python3-venv . Isso parece funcionar quando eu pyvenv . , com coisas python3 no diretório ./bin .

Como posso criar com sucesso um virtualenv do Python 3?

    
por Escher 13.02.2016 / 14:11

1 resposta

19

venv é um script de conveniência para criar envs virtuais, mas não substitui totalmente tudo o que virtualenv pode fazer. Usar qualquer um é bom para a maioria dos casos. virtualenv não está obsoleto.

python3 -m venv funciona após a instalação de python3-venv porque o Debian remove alguns scripts do pacote Python básico. python3-virtualenv não coloca o script virtualenv em seu caminho por algum motivo, mas python-virtualenv faz isso e funcionará bem para qualquer versão.

Não é importante para qual versão virtualenv está instalada, ele pode produzir envs para qualquer versão instalada passando -p pythonX (onde X é a versão). venv , sendo mais simples, criará apenas envs da versão da qual é executado, e só está disponível desde 3.3.

$ sudo apt-get install python-virtualenv
$ virtualenv -p python3 env
$ source ./env/bin/activate
$ sudo apt-get install python3-venv
$ python3 -m venv env
$ source ./env/bin/activate
    
por 13.02.2016 / 17:06