Virtualenv: Erro ao criar virtualenv com python3.6

Criado em 22 jun. 2017  ·  24Comentários  ·  Fonte: pypa/virtualenv

Hoje cedo instalei o python3.6 em minha máquina debian. Python3.6 foi disponibilizado na distribuição buster. Quando tento criar um virtualenv com python3.6.

python3.6 -m venv venv

dá o seguinte erro.

O ambiente virtual não foi criado com sucesso porque o assegurepip não está disponível. Em sistemas Debian / Ubuntu, você precisa instalar o pacote python3-venv usando o seguinte comando.

apt-get install python3-venv

Você pode precisar usar sudo com esse comando. Depois de instalar o python3-venv
pacote, recrie seu ambiente virtual.

Comando com falha: ['/home/float/test/t/bin/python3.6', '-Im', 'garantirpip', '--upgrade', '--default-pip']

Eu tenho python3-venv (3.5.3-1) instalado. Por que recebo esse erro? Se eu executar o comando

py3 -Im ensurepip --upgrade --default-pip

diz

/usr/bin/python3.6: No module named ensurepip

Não tenho problemas para criar virtualenvs usando a versão python3 padrão (3.5.3).

Além disso, percebi que posso criar um virtualenv da seguinte maneira:

virtualenv -p python3.6 venv

Comentários muito úteis

O problema do autor da postagem original é por não ter o pacote 'python3.6-venv' instalado, o que pode ser verificado usando o Docker se você não tiver acesso a um buster Debian:

$ docker run --rm -it debian:buster /bin/bash
$ apt update
...
$ apt install python3.5 python3.6 python3.5-venv
...
$ python3.6 -m venv venv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/venv/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']
$ rm -rf venv
$ apt install python3.6-venv
...
$ python3.6 -m venv venv
... success

Instale 'python3.6-venv' e deve funcionar.

Todos 24 comentários

Oi,

O próprio módulo virtualenv e python3 venv são 2 projetos / coisas totalmente diferentes.

venv está fazendo o mesmo que o virtualenv, mas está diretamente integrado no próprio python3.
virtualenv é basicamente o projeto histórico (e normalmente não deve ser usado com python3 enquanto houver venv).

Com base em sua entrada, eu diria que python3-venv pode ser reinstalado ( sudo apt-get reinstall python-venv ou algo semelhante) do seu lado. Mas posso estar errado. De qualquer forma, isso se parece com tudo relacionado ao debian, tenho certeza.

Então, você pode encerrar o problema? (Eu não sou mantenedor aqui)
Saudações.

A reinstalação não funcionou. Vou encerrar este problema agora. Vou atualizar se tiver mais informações.

@animeshb , você não tem mais saída após

Failing command: ['/home/float/test/t/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']

?

float<strong i="5">@animesh</strong>:~/test$ python3.6 -m venv venv

Nada depois dessa linha.

The virtual environment was not created successfully because ensurepip is not available. On Debian/Ubuntu systems, you need to install the python3-venv package using the following command.

apt-get install python3-venv

You may need to use sudo with that command. After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/home/float/test/t/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']

Na pasta venv/bin , não há comando de ativação.

float<strong i="13">@animesh</strong>:~/test$ ls venv/bin/
python  python3  python3.6

Só posso redirecioná-lo para uma das muitas páginas que correspondem a este erro (é um problema conhecido em sistemas debian / ubuntu):

https://bugs.launchpad.net/ubuntu/+source/python3.4/+bug/1290847

que tal sudo apt-get install python3-pip ?

O problema do autor da postagem original é por não ter o pacote 'python3.6-venv' instalado, o que pode ser verificado usando o Docker se você não tiver acesso a um buster Debian:

$ docker run --rm -it debian:buster /bin/bash
$ apt update
...
$ apt install python3.5 python3.6 python3.5-venv
...
$ python3.6 -m venv venv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/venv/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']
$ rm -rf venv
$ apt install python3.6-venv
...
$ python3.6 -m venv venv
... success

Instale 'python3.6-venv' e deve funcionar.

Uau, não me ocorreu que haveria um pacote -venv específico da versão. Instalar isso resolveu o problema.

@gst e @eukaryote Muito obrigado por dedicar seu tempo a esta questão.

A solução de @eukaryote funcionou para mim. Obrigado por postar isso!

A localidade configurada incorretamente também pode induzir esse problema, pois essa resposta resolve meu problema que produz a mesma mensagem de erro do OP.

Tente executar:

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

apenas um ponto de dados, mas mexendo em um novo virtualbox ubuntu bionic, descobri que apt install python3.6-venv ainda me deixou com um python3.6 -m venv quebrado, mas executando apt install python3-venv consertou.

Estou no Debian testing / buster e estou tendo o mesmo problema, enquanto python3.6-venv e python3-venv estão instalados.

O bug debian para isso está aqui btw: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901601

Nikolas
Eles escrevem lá que foi reparado na última versão. Então eu fiz
apt purge python3.6-venv
dpkg -i --force-depends-version python3.6-venv_3.6.6 ~ rc1-3_amd64.deb # from snapshot.debian.org
E funciona para mim.
Provavelmente irei precisar de conserto mais tarde: apt --fix-broken install

Só deixando um comentário aqui, para quem chegar depois de mim, pesquisando pelo mesmo problema:

o mesmo se aplica ao 3.7 do python, você deve instalar python3.7-venv , que é apt-get install python3.7-venv

Apenas para sua informação, a solução acima não funciona de fato para o python 3.7. apt install python3.7 python3.7-venv em uma imagem docker do stock buster ainda produz um virtualenv quebrado ("o surepip não está disponível"). No entanto, após apt install python3-venv (que instala desnecessariamente todo o python3.6), você pode criar um python 3.7 venv funcional incluindo um 3.7 pip adequado, com python3.7 -m venv myvenv . Portanto, o conjunto completo de comandos de trabalho é este:

sudo apt install python3.7 python3-venv python3.7-venv # all three are required
python3.7 -m venv myvenv
. myvenv/bin/activate

(aliás, observe que todas as instalações de python3.7-venv são um sistema fictício ensurepip módulo.)

você está falando sobre venv , que é um projeto diferente. Este rastreador é para virtualenv.

Eu também estava enfrentando o mesmo problema.

[ niraj @ abc ~] $ / python / v3.7.0 / bin / python3 -m venv avd
Erro: O comando '[' / home / niraj / avd / bin / python3 ',' -Im ',' garantirpip ',' --upgrade ',' --default-pip ']' retornou o status de saída 1 diferente de zero.

Depois de adicionar libffi3.3 no meu caminho LD_LIBRARY, ele funciona

setenv LD_LIBRARY_PATH /libffi/v3.3/lib64

Primeiro instalei com sudo apt install python3-venv e tive o mesmo problema e foi resolvido com: sudo apt install python3.6-venv

@eukaryote ainda não funcionou. Você pode ajudar? Estou no Ubuntu 18.04 LTS

A localidade configurada incorretamente também pode induzir esse problema, pois essa resposta resolve meu problema que produz a mesma mensagem de erro do OP.

Tente executar:

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

Este trabalho para mim no Ubuntu 16.04.6. THX

A localidade configurada incorretamente também pode induzir esse problema, pois essa resposta resolve meu problema que produz a mesma mensagem de erro do OP.

Tente executar:

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

obrigada

Uau, instalar a versão específica do venv funcionou para mim. No meu caso, python3.8-venv.

Obrigado @jrperin

Instalar a versão específica funcionou para mim também: python3.8-venv

Se a versão do sistema operacional for 18.04 ou 20.04:

sudo apt remove python3.6
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.6
sudo apt install python3.6-venv
sudo apt install python3.6-dev

Softwares de Suporte Adicionais
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget

Esta página foi útil?
0 / 5 - 0 avaliações