Como configurar e usar um ambiente python virtual no Ubuntu?

73

Os ambientes virtuais Python são usados ​​para criar ambientes python isolados para evitar conflitos de dependência e versão e também cuidar indiretamente de problemas de permissão. Mas qual é a maneira mais fácil de configurá-lo e usá-lo no Ubuntu?

Gerhard Burger
fonte

Respostas:

99

With virtualenvwrapper(wrappers amigáveis ​​para a funcionalidade de virtualenv)

Instale o virtualenv

Instale virtualenvcom

sudo apt-get install virtualenv

(para instalação do Ubuntu 14.04 (confiável) python-virtualenv)

Instalar virtualenvwrapper

O motivo pelo qual também instalamos o virtualenvwrapper é porque ele oferece comandos simples e agradáveis ​​para gerenciar seus ambientes virtuais. Existem duas maneiras de instalar virtualenvwrapper:

Como pacote Ubuntu (do Ubuntu 16.04)

Corre

sudo apt install virtualenvwrapper

então corra

echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> ~/.bashrc

Usando pip

  1. Instalar e / ou atualizar pip

    Instale o pip para Python 2 com

    sudo apt-get install python-pip

    ou para Python 3

    sudo apt-get install python3-pip

    (se você usa o Python 3, pode ser necessário usá-lo em pip3vez do piprestante deste guia).

    Opcional (mas recomendado): ative o preenchimento automático do bash para pip

    Corre

    pip completion --bash >> ~/.bashrc

    e execute source ~/.bashrcpara ativar.

  2. Instalar virtualenvwrapper

    Como queremos evitar asudo pip instalação virtualenvwrapperlocal (por padrão em ~/.local) com:

    pip install --user virtualenvwrapper

    e

    echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
  3. Origem virtualenvwrapper em .bashrc

    echo "source ~/.local/bin/virtualenvwrapper.sh" >> ~/.bashrc

Configure virtualenv e virtualenvwrapper:

Primeiro exportamos a WORKON_HOMEvariável que contém o diretório em que nossos ambientes virtuais devem ser armazenados. Vamos fazer isso~/.virtualenvs

export WORKON_HOME=~/.virtualenvs

agora também crie este diretório

mkdir $WORKON_HOME

e colocar essa exportação em nosso ~/.bashrcarquivo para que essa variável seja definida automaticamente

echo "export WORKON_HOME=$WORKON_HOME" >> ~/.bashrc

Também podemos adicionar alguns truques extras, como os seguintes, que garantem que, se pipcriar um ambiente virtual extra, ele também será colocado em nosso WORKON_HOMEdiretório:

echo "export PIP_VIRTUALENV_BASE=$WORKON_HOME" >> ~/.bashrc 

Fonte ~ / .bashrc para carregar as alterações

source ~/.bashrc

Teste se funciona

Agora criamos nosso primeiro ambiente virtual. O -pargumento é opcional, é usado para definir a versão do Python a ser usada; também pode ser python3por exemplo.

mkvirtualenv -p python2.7 test

Você verá que o ambiente será configurado e seu prompt agora inclui o nome do seu ambiente ativo entre parênteses. Além disso, se você agora executar

python -c "import sys; print sys.path"

você deve ver muito /home/user/.virtualenv/...porque agora não usa os pacotes de sites do sistema.

Você pode desativar seu ambiente executando

deactivate

e se você quiser trabalhar novamente, basta digitar

workon test

Por fim, se você deseja excluir seu ambiente, digite

rmvirtualenv test

Desfrutar!


Obrigado ao autor deste post do blog .

Gerhard Burger
fonte
2
python-pipe python-virtualenvsão instaláveis ​​através do repositório Ubuntu, sem necessidade de instalação manual.
Timo
2
No entanto, no Ubuntu, recomendamos pacotes do Ubuntu, por muitos motivos. Não há nada de errado com versões mais antigas de pip ou virtualenv, elas são perfeitamente capazes.
tumbleweed
11
@ GerhardBurger: Se você criar um virtualenv python3, ele obterá um pip que funciona em python3. Se você usar o virtualenv do Ubuntu para criar o virtualenv, tudo o que você fez estará contido no virtualenv. Se você começar a instalar o sudo easy_installing, isso deixará uma bagunça em / usr / local, não é nada fácil de limpar, sem muito ganho.
precisa saber é
parece que o alias não é necessário agora: --no-site-packagesé padrão e está --distributeobsoleto
int_ua 27/11/2013
No caso de mkvirtualenv testnão funcionar, veja também: stackoverflow.com/questions/15608236/...
Nikos Alexandris
8

Os ambientes virtuais oferecem uma maneira de gerenciar e isolar dependências por projeto. Além disso, eles também evitam toda a sudo pip installsituação, o que é um risco de segurança, como expliquei em https://askubuntu.com/a/802594/15003 . A documentação oficial do Python também incentiva o uso de ambientes virtuais .

A maneira mais fácil de criar e usar ambientes virtuais para o Python 2 e o Python 3 é instalar virtualenvusando aptou apt-get. Para cada projeto Python, crie um virtualenv e ative-o. Observe que o virtualenv é específico para uma versão específica do Python. Após a ativação, use pippara instalar pacotes Python como de costume, independentemente de você estar usando Python 2 ou 3; não é necessário usar o pip3Python 3. sudoé usado apenas para instalar virtualenve não é usado com pip, evitando o risco de segurança acima mencionado. Os comandos para fazer isso são:

sudo apt update
sudo apt install virtualenv
cd ~/desired_directory  # cd to desired_directory
virtualenv venv  # create virtualenv named venv for default system Python, which is Python 2 for Ubuntu
source venv/bin/activate  # activate virtualenv
pip install -U pip  # upgrade pip in case it is outdated
pip install desired_package  # install desired_package

Se você deseja criar um virtualenv para Python 3, substitua virtualenv venvpor:

virtualenv venv -p python3

Leia mais sobre vários sinos e assobios virtualenvem https://virtualenv.pypa.io/en/stable/ .

edwinksl
fonte
11
sourcesalva-me um monte de comandos
vnpnlz
OSError: [Erro 40] Muitos níveis de links simbólicos: '/ var / www / html / python / cheque / venv / bin / python'
Saravanan Nandhan
@SaravananNandhan Por favor, faça uma nova pergunta com os detalhes necessários.
Edwinksl
3

Com o módulo venv disponível no Python 3.3 (e Ubuntu 15.10)

Os ambientes virtuais (venvs) são tão populares que a funcionalidade agora está incluída no próprio python (a partir do 3.3). Para usá-lo no Ubuntu, você precisa instalar python3-venv(já que o ensurepipmódulo não está disponível):

sudo apt-get install python3-venv

Depois disso, você pode usar

pyvenv myvirtualenv

para criar um ambiente virtual chamado myvirtualenv. Você pode então usar

source myvirtualenv/bin/activate

para ativar o ambiente virtual. Para desativar, basta digitar

deactivate

EDIT: O pyvenvscript foi preterido em favor de python3 -m venv. Isso evita confusão sobre a qual intérprete Python pyvenvestá conectado e, portanto, qual interpretador Python será usado pelo ambiente virtual. ( fonte )

Gerhard Burger
fonte