Instalação e uso simples de pyenv (git, pyenv, pyenv-virtualenv)

Instalação e uso simples de pyenv (git, pyenv, pyenv-virtualenv)

Gerenciamento do ambiente de trabalho Python

Há uma grande diferença entre o Python 2 e o Python 3 e, por várias razões, o Python 2 e o Python 3 coexistem por um longo tempo. No processo de trabalho real, podemos usar o Python 2 e o Python 3 ao mesmo tempo; portanto, precisamos alternar frequentemente entre o Python 2 e o Python 3. Além disso, se você é alguém que gosta de adotantes precoces, é provável que baixe a versão do Python imediatamente quando a nova versão do Python for lançada e experimente os recursos do Python.

No mundo Python, além de gerenciar a versão Python, você também precisa gerenciar diferentes pacotes de software. Na maioria dos casos, podemos usar a versão para bibliotecas de código aberto. No entanto, às vezes pode ser necessário usar versões diferentes de pacotes de software em projetos diferentes para a mesma versão do Python.

Nesta seção, apresentaremos duas ferramentas, pyenv e virtualenv. O primeiro é usado para gerenciar diferentes versões do Python, e o último é usado para gerenciar diferentes ambientes de trabalho. Com essas duas ferramentas, os problemas de versão relacionados ao Python não serão mais um problema.

1. Cenário problemático

  1. A versão do interpretador Python é confusa, 2 e 3 são muito diferentes e as versões subdivididas também são diferentes, o que é difícil de selecionar e gerenciar.
  2. Diferentes distribuições Linux vêm com Pythons diferentes, por exemplo, o ubuntu16 vem com as versões 2.7 e 3.5. Muitos componentes do sistema dependem de seus próprios intérpretes.Depois de excluídos ou alterados, eles podem causar problemas no sistema.
  3. O gerenciamento de pacotes de interpretadores Python diferentes também é um problema, como os componentes de pacotes necessários, como pip e ipython, e como garantir que diferentes ambientes de pacotes não interfiram entre si no desenvolvimento do projeto também é um problema.

Portanto, existe uma solução definitiva para controlar diferentes ambientes de pacotes enquanto gerencia diferentes versões de intérpretes? Sim, é pyenv.

2. Use pyenv para gerenciar diferentes versões do Python

Instalar versões diferentes do Python não é uma tarefa fácil, alternar entre versões diferentes do Python é mais difícil, e a coexistência de várias versões é muito fácil de interferir entre si. Portanto, precisamos de uma ferramenta chamada pyenv. pyenv é uma ferramenta de gerenciamento de versão do Python, pode alternar a versão global do Python e também pode fornecer a versão correspondente do Python para um único projeto. Depois de usar o pyenv, você pode instalar várias versões diferentes do Python no servidor ou instalar implementações diferentes do Python. Alternar entre diferentes versões do Python também é muito simples. A seguir, vamos dar uma olhada na instalação e no uso do pyenv.

3. O que é pyenv? O que ele pode fazer?

O Pyenv é uma ferramenta simples e discreta de gerenciamento de ambiente Python, extraída da comunidade Ruby. Ele pode facilmente mudar a versão do intérprete global e, ao mesmo tempo, pode gerenciar facilmente a fonte de pacote correspondente com o plugin vitualenv.

Sabemos que, ao digitar um comando como 'ls' no terminal, o shell verá em cada diretório no PATH do ambiente atual se existe um arquivo executável de ls e o executará se for encontrado, caso contrário, reportará 'command no found 'Erro, pelo mesmo motivo, desde que a variável PATH seja controlada, a versão python pode ser alterada. Pyenv controla a versão python, inserindo o caminho de calços no cabeçalho PATH.

Instalação e uso simples de pyenv (git, pyenv, pyenv-virtualenv)

A relação entre pyenv e popular pipenv e virtualenv

O Pipenv é uma ferramenta de gerenciamento de ambiente virtual python escrita pelo autor de solicitações, Kenneth Reitz, que combina as funções de pip e virtualenv.O objetivo ainda é o gerenciamento do ambiente de pacotes.A idéia é primeiro criar um ambiente que especifique a versão Python e, em seguida, nesse ambiente. Instale o pacote correspondente, boas críticas, veja muitos Daniel são recomendados.

O Virtualenv é uma ferramenta de gerenciamento de ambiente virtual mais tradicional e madura, e mais pessoas são usadas. A idéia é criar um ambiente virtual e instalar o pacote correspondente. Para entrar no ambiente, ative o script de ativação e ative-o. Embora maduro, eu pessoalmente não Também gosto de usá-lo.Quando implantar um projeto, sempre tenho alguns problemas ambientais.

O Pyenv é relativamente pobre em popularidade, mas também é muito estável.Eu usei as três ferramentas de gerenciamento ambiental.Eu pessoalmente prefiro o pyenv pelos seguintes motivos:

  • Comparado com as outras duas ferramentas, o pyenv se concentra mais no gerenciamento de versões do interpretador Python, que é um nível maior que o gerenciamento de pacotes.Com o pyenv, eu posso facilmente baixar a versão especificada do interpretador Python, pypy, anaconda, etc. Intérprete Python para comutação local e global em ambiente shell
  • Não há necessidade de restringir uma certa versão do ambiente virtual durante o desenvolvimento, basta especificar uma certa versão com pyenv durante a implantação
  • Quando o pyenv alterna a versão do interpretador, o pip e o ipython e o ambiente de pacote correspondente são alternados, portanto, se você deseja executar vários interpretadores ipython2.xe ipython3.x para verificar algum código, é muito conveniente
  • O pyenv também pode criar um ambiente virtual especificado, mas não há necessidade de especificar um diretório específico, o grau de liberdade é maior e o uso também é simples

4. Simples de usar

# 查看当前版本
pyenv version

# 查看所有版本
pyenv versions

# 查看所有可安装的版本
pyenv install --list

# 安装指定版本
pyenv install 3.6.5
# 安装新版本后rehash一下
pyenv rehash

# 删除指定版本
pyenv uninstall 3.5.2

# 指定全局版本
pyenv global 3.6.5

# 指定多个全局版本, 3版本优先
pyenv global 3.6.5 2.7.14

# 实际上当你切换版本后, 相应的pip和包仓库都是会自动切换过去的

Instalação pyenv

ambiente linux

Versão Anfitrião Meio ambiente
centos7.6 192.168.1.80 python3

1. Instale o git

[root@python ~]# yum install git

2. Abra o terminal

Este artigo usa bash

3. Instale o pyenv

Nota: Todas as instalações deste artigo seguem rigorosamente os documentos oficiais e são completamente consistentes com os documentos oficiais. \

endereço git: https://github.com/pyenv/pyenv

Execute o seguinte comando no seu terminal, é seguro e não tóxico, tenha a certeza de comer:

Primeiro clone o projeto e coloque-o em uma pasta oculta no diretório inicial: .pyenv

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

Em seguida, configure as variáveis ​​de ambiente

Se você usar o bash, execute os seguintes comandos em ordem:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc
Se você usa o zsh, execute os seguintes comandos em ordem:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc

O significado do comando echo é: escreva o conteúdo entre aspas em um arquivo.Por
favor, observe que o último comando longo dos três comandos echo acima, assegura que o conteúdo entre aspas esteja em ~ / .bashrc ou ~ / .zshrc O fundo.
Como a variável de ambiente do caminho é manipulada durante a inicialização do pyenv, resultando em comportamento imprevisível.
Para visualizar a parte inferior do arquivo, você pode usar o comando tail, use: tail ~ / .bashrc ou tail ~ / .zshrc, edite o arquivo, use vim ou vscode

Por fim, antes de usar pyenv, reinicialize o ambiente de shell e execute o seguinte comando

exec $SHELL

É totalmente possível não executar este comando.Você pode fechar a janela atual do terminal e reiniciar uma.

Neste ponto, você concluiu a instalação do pyenv, pode usar todos os seus comandos, mas sugiro que não o use com pressa, instale um plug-in do pyenv de uma só vez, que é pyenv-virtualenv

4. Instale pyenv-virtualenv

O virtualenv em si é um projeto independente para isolar o ambiente de trabalho de diferentes projetos. Por exemplo, o usuário lmx deseja usar o Flask 0.8 no projeto A e, ao mesmo tempo, deseja usar o Flask 0.9 no projeto B. Se instalarmos o Flask globalmente, ele inevitavelmente falhará em atender às necessidades dos usuários. Neste momento, podemos usar o virtualenv.

Os leitores precisam prestar atenção à diferença entre pyenv e virtualenv. pyenv é usado para gerenciar diferentes versões do Python, por exemplo, seu sistema usa o Python 2.7.13 ao trabalhar e o Python 3.6.0 ao aprender. O Virtualenv é usado para isolar o ambiente de trabalho do projeto.Por exemplo, o Projeto A e o Projeto B usam o Python 2.7.13.No entanto, o Projeto A precisa usar o Flask versão 0.8 e o Projeto B precisa usar o Flask versão 0.9. Desde que combinemos as duas ferramentas pyenv e virtualenv, podemos construir qualquer combinação de versões do Python e de bibliotecas de terceiros, o que tem boa flexibilidade e evita interferência mútua entre os projetos.

O Virtualenv em si é uma ferramenta independente, os usuários podem usar o virtualenv sozinho sem usar o pyenv. No entanto, se você usar o pyenv, precisará instalar o plug-in pyenv-virtualenv em vez de usar a função virtualenv através do software virtualenv.

endereço git: https://github.com/pyenv/pyenv-virtualenv

(1) Clone o plug-in na pasta de plug-ins do pyenv que acabou de ser instalada

git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

(2) Em seguida, configure as variáveis ​​de ambiente

Se você usar o bash, execute o seguinte comando:
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
Se você usar zsh, execute o seguinte comando:
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc

(3) Finalmente, antes de usar pyenv, reinicialize o ambiente shell e execute o seguinte comando

exec $SHELL

É totalmente possível não executar este comando.Você pode fechar a janela atual do terminal e reiniciar uma.

Neste ponto, o pyenv está instalado.Podemos verificar se o pyenv está instalado corretamente e obter informações de ajuda para o pyenv pelo seguinte comando:

[root@python ~]# pyenv --help
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    List all available pyenv commands
   exec        Run an executable with the selected Python version
   global      Set or show the global Python version(s)
   help        Display help for a command
   hooks       List hook scripts for a given pyenv command
   init        Configure the shell environment for pyenv
   install     Install a Python version using python-build
   local       Set or show the local application-specific Python version(s)
   prefix      Display prefix for a Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   root        Display the root directory where versions and shims are kept
   shell       Set or show the shell-specific Python version
   shims       List existing pyenv shims
   uninstall   Uninstall a specific Python version
   version     Show the current Python version(s) and its origin
   --version   Display the version of pyenv
   version-file   Detect the file that sets the current pyenv version
   version-name   Show the current Python version
   version-origin   Explain how the current Python version is set
   versions    List all Python versions available to pyenv
   whence      List all Python versions that contain the given executable
   which       Display the full path to an executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme

Segundo, use pyenv

Somente o uso diário de pyenv e virtualenv é mostrado aqui \

1. Verifique se a instalação está correta

Verifique a versão do pyenv
[root@python ~]# pyenv version
(set by /root/.pyenv/version)
Veja quais versões python o pyenv conseguiu
[root@python ~]#pyenv versions
* system (set by /root/.pyenv/version)

Se você vir as informações normais da versão, isso significa Ok. Se você vir algo como comando não encontrado, significa que a instalação falhou.

Podemos visualizar quais versões do Python atualmente suportadas pelo pyenv através do comando install do pyenv, da seguinte maneira:

[root@python ~]# pyenv install --list 
Available versions:
2.1.3
……省略部分信息
3.8.0
3.8-dev
3.8.1
3.9-dev
……省略部分信息
anaconda3-2018.12
anaconda3-2019.03
anaconda3-2019.07
anaconda3-2019.10
……省略部分信息
[root@python ~]#

2, versão python do switch pyenv

Como a lista de versões do Python que o pyenv pode instalar é muito longa, ela foi omitida aqui. Os leitores podem instalar o pyenv em seus computadores e, em seguida, executar o comando pyenv install --list para visualizar. Como você pode ver, o pyenv não pode apenas instalar versões diferentes do Python, mas também instalar implementações diferentes do Python, e também instalar versões do Python para aprendizado.

Veja a versão do Python incluída no sistema atual:

[root@python ~]# pyenv versions 
* system (set by /root/.pyenv/version)
Use pyenv para instalar diferentes versões do Python:
[root@python ~]#pyenv install -v 3.8.1  
[root@python ~]#pyenv install -v 2.7.13 
Verifique a versão do Python incluída no sistema atual novamente
[root@python ~]# pyenv versions
* system (set by /root/.pyenv/version)
  2.7.13
  3.8.1

Mudar versão

#切换前为3.8.1
[root@python ~]# python
Python 3.8.1 (default, Apr 20 2020, 15:00:10) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

#切换为2.7.13
[root@python ~]# pyenv  global 2.7.13 
[root@python ~]# python
Python 2.7.13 (default, Apr 20 2020, 15:04:15) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

Depois de usar o pyenv, você pode mudar rapidamente a versão do Python. Após alternar a versão do Python, as dependências dependentes da versão também serão alternadas. Portanto, não precisamos nos preocupar se versões diferentes irão interferir entre si no sistema. Por exemplo, depois de alternar a versão do Python, o pip correspondente também será alternado, portanto, não se preocupe com a incompatibilidade entre a versão do pip e a versão do Python que você usa, conforme mostrado abaixo:

[root@python ~]# pyenv  global 3.8.1
[root@python ~]# pip --version
pip 19.2.3 from /root/.pyenv/versions/3.8.1/lib/python3.8/site-packages/pip (python 3.8)
Se você deseja excluir a versão do Python, use o comando de desinstalação. Como mostrado abaixo:
[root@python ~]# pyenv uninstall 2.7.10

Terceiro, o uso de pyenv-virtualenv

Com o pyenv-virtualenv, podemos criar vários ambientes de trabalho diferentes para o mesmo interpretador Python. Por exemplo, criamos dois novos ambientes de trabalho:

[root@python ~]# pyenv virtualenv 3.8.1 first_project 
[root@python ~]# pyenv virtualenv 3.8.1 second_projec
Você pode usar o subcomando virtualenvs para visualizar o ambiente de trabalho
[root@python ~]# pyenv virtualenvs
  3.8.1/envs/first_project (created from /root/.pyenv/versions/3.8.1)
  3.8.1/envs/second_projec (created from /root/.pyenv/versions/3.8.1)
  first_project (created from /root/.pyenv/versions/3.8.1)
  second_projec (created from /root/.pyenv/versions/3.8.1)

Após criar um ambiente de trabalho, é possível entrar ou sair de um ambiente de trabalho através dos subcomandos de ativação e desativação. Depois de entrar no ambiente de trabalho, o prompt à esquerda exibirá seu ambiente de trabalho atual para evitar erros de operação devido a muitos ambientes.

(first_project) [root@python ~]# pip install flask==1.1.1 
Looking in indexes: https://pypi.doubanio.com/simple
Collecting flask==1.1.1
  Downloading https://pypi.doubanio.com/packages/9b/93/628509b8d5dc749656a9641f4caf13540e2cdec85276964ff8f43bbb1d3b/Flask-1.1.1-py2.py3-none-any.whl (94kB)
     |███▌                            | 10kB 28.0MB/s eta 0:00:
     |███████                         | 20kB 1.8MB/s eta 0:00:0
     |██████████▍                     | 30kB 2.7MB/s eta 0:00:0
     |█████████████▉                  | 40kB 1.8MB/s eta 0:00:0
     |█████████████████▍              | 51kB 1.3MB/s eta 0:00:0
     |████████████████████▉           | 61kB 1.5MB/s eta 0:00:0
     |████████████████████████▎       | 71kB 1.4MB/s eta 0:00:0
     |███████████████████████████▊    | 81kB 1.3MB/s eta 0:00:0
     |███████████████████████████████▏| 92kB 1.4MB/s eta 0:00:0
     |████████████████████████████████| 102kB 1.6MB/s 
Collecting itsdangerous>=0.24 (from flask==1.1.1)
(first_project) [root@python ~]# pyenv deactivate
##退出first_project环境
[root@python ~]# 

Em seguida, vamos dar uma olhada na instalação de diferentes versões do Flask em diferentes ambientes de trabalho

[root@python ~]# pyenv activate first_project 
##切换工作环境
(first_project) [root@python ~]# pip install flask==1.1.1 
##安装1.1.1的flask
(first_project) [root@python ~]# pyenv deactivate 
##退出目前工作环境
[root@python ~]#

[root@python ~]# pyenv activate second_projec
##切换工作环境
(second_project) [root@python ~]# pip install flask==0.10.1
##安装0.10.1的flask
(second_project) [root@python ~]# pyenv deactivate 
##退出目前工作环境
[root@python ~]#
Veja o diretório de origem dos dois ambientes de trabalho

Instalação e uso simples de pyenv (git, pyenv, pyenv-virtualenv)

Se você deseja excluir o ambiente virtual, use:

(first_project) [root@python ~]# pyenv virtualenv-delete first_project 

Usando os plugins pyenv e python-virtualenv, podemos alternar livremente entre diferentes versões.Em comparação com o gerenciamento de versões do Python, não apenas economiza tempo, mas também evita interferência mútua no processo de trabalho.

Três, atualização pyenv

Como somos clonados com git, a atualização é muito simples

cd ~/.pyenv` 或者 `cd $(pyenv root)`
 `git pull

Quatro, desinstalar pyenv

Como o pyenv colocou tudo em ~ / .pyenv, é muito conveniente desinstalar, apenas duas etapas

Primeiro você precisa excluir a variável de ambiente

Então você precisa executar:

rm -rf ~/.pyenv` 或者 `rm -rf $(pyenv root)

Acho que você gosta

Origin blog.51cto.com/14320361/2488888
Recomendado
Clasificación