Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

Apresentação

As aplicações Python utilizarão regularmente pacotes e módulos que não vêm como uma característica da biblioteca padrão. As aplicações de vez em quando precisarão de uma adaptação particular de uma biblioteca, com o argumento de que a aplicação pode necessitar que um bug específico tenha sido corrigido ou a aplicação pode ser composta utilizando uma forma desatualizada da interface da biblioteca.

Isto implica que pode não ser viável que um estabelecimento Python atenda aos pré-requisitos de cada aplicação. Na hipótese de que a aplicação A necessite de adaptação 1.0 de um módulo específico e a aplicação B necessite do formulário 2.0, nesse momento os pré-requisitos estão em dificuldades e a introdução do formulário 1.0 ou 2.0 deixará uma aplicação incapaz de rodar.

A resposta a esta questão é fazer um domínio virtual, uma árvore de registro independente que contém um estabelecimento Python para uma forma específica de Python, além de alguns dos pacotes extras.

Várias aplicações seriam então capazes de utilizar diversas situações virtuais. Para determinar o caso anterior de conflito de necessidades, a aplicação A pode ter sua própria condição virtual com a variante 1.0 introduzida enquanto a aplicação B tem outra condição virtual com o formulário 2.0. Caso a aplicação B necessite que uma biblioteca seja movida para a variante 3.0, isto não influenciará a situação da aplicação A.

12.2. Fazendo Situações Virtuais

O módulo usado para fazer e supervisionar situações virtuais é chamado venv. venv normalmente introduzirá a última variante de Python que você tem acessível. Na hipótese de você ter várias adaptações de Python em seu framework, você pode escolher uma forma particular de Python rodando python3 ou qualquer outra que você precisar.

Para fazer um domínio virtual, instale-se em um registro onde você precisa colocá-lo, e execute o módulo venv como conteúdo com a forma de índice:

python3 -m venv tutorial-env

Isso fará com que o exercício instrucional inveja o catálogo caso ele não exista, além de fazer índices dentro dele contendo uma duplicata do tradutor Python, a biblioteca padrão, e diferentes documentos de apoio.

Uma área típica do catálogo para uma situação virtual é .venv. Este nome mantém o catálogo normalmente coberto em seu prato e, portanto, fora do caminho batido, enquanto lhe dá um nome que esclarece porque o registro existe. Da mesma forma, antecipa o conflito com os registros de definição de variáveis de condição .env que algumas ferramentas de apoio.

Quando você faz uma situação virtual, você pode atualizá-la.

No Windows, execute:

tutorial-envripts\\activar.bat

Em Unix ou MacOS, execute:

fonte tutorial-env/bin/activar

(Este roteiro é escrito para a bash shell. Se você usar o csh ou shells de peixe, existem scripts alternativos activate.csh e activate.fish que você deve usar em seu lugar).

Iniciar a condição virtual mudará o resumo da sua concha para mostrar qual condição virtual você está utilizando, e alterará a natureza com o objetivo de que rodando python você terá aquela forma específica e estabelecimento do Python. Por exemplo:

(tutorial-env) $ python

Python 3.5.1 (padrão, 6 de maio de 2016, 10:59:36)

  …

>>> sistema de importação

>>> sys.path

[”, ‘/usr/local/lib/python35.zip’, …,

~/envs/tutorial-env/lib/python3.5/site-packages’]

Gerenciamento de pacotes com pip

Supervisionando pacotes com pip

Você pode introduzir, revisar e expelir pacotes utilizando um programa chamado pip. Como é claro, o pip irá introduzir pacotes do Python Bundle File, <https://pypi.org>. Você pode ler o Python Bundle Record indo até ele no seu navegador de internet, ou você pode utilizar o destaque da caça restrita do pip:

(tutorial-env) $ pip pesquisa astronomia

skyfield – Astronomia Elegante para Python

gary – Astronomia galáctica e dinâmica gravitacional.

novas – Observatório Naval dos Estados Unidos Biblioteca de Astronomia NOVAS

astroobs – Fornece efemérides astronômicas para planejar observações telescópicas

PyAstronomy – Uma coleção de ferramentas relacionadas à astronomia para Python.

pip tem uma série de subcomandos: “search”, “install”, “uninstall”, “freeze”, etc. (Consulte o guia de Instalação de Módulos Python para documentação completa do pip.)

Você pode instalar a última versão de um pacote, especificando o nome de um pacote:

(tutorial-env) $ pip instalar novas

Coleta de novas

  Download de novas-3.1.1.3.tar.gz (136kB)

Instalação de embalagens coletadas: novas

  Executando o setup.py install para novas

Novas-3.1.1.1.3 instaladas com sucesso

Você também pode instalar uma versão específica de um pacote, dando o nome do pacote seguido por == e o número da versão:

(tutorial-env) $ pip install requests===2.6.0

Coleta de pedidos===2.6.0

  Usando pedidos em cache-2.6.0-py2.py3-none-any.whl

Instalação de pacotes coletados: solicitações

Pedidos instalados com sucesso-2.6.0

No caso de você executar novamente esta ordem, pip vai ver que a variante mencionada é a partir de agora introduzida e sentar ocioso. Você pode fornecer um número de adaptação alternativo para obter essa forma, ou você pode executar pip introduce – mover para cima para atualizar o pacote para a variante mais recente:

tutorial-env) $ pip install – pedidos de atualização

Pedidos de coleta

Instalação de pacotes coletados: solicitações

  Instalação existente encontrada: solicitações 2.6.0

    Desinstalando pedidos-2.6.0:

      Pedidos desinstalados com sucesso-2.6.0

Pedidos instalados com sucesso-2.7.0

A desinstalação do pip seguida por um ou mais nomes de pacotes irá remover os pacotes do ambiente virtual.

pip show irá exibir informações sobre um pacote em particular:

(tutorial-env) $ pip mostrar pedidos

Metadata-Versão: 2.0

Nome: pedidos

Versão: 2.7.0

Resumo: Python HTTP para Humanos.

Home-page: http://python-requests.org

Autor: Kenneth Reitz

Autor-email: me@kennethreitz.com

Licença: Apache 2.0

Localização: /Users/akuchling/envs/tutorial-env/lib/python3.4/site-packages

Requer:

A lista pip exibirá todos os pacotes instalados no ambiente virtual:

(tutorial-env) $ lista de pip

novas (3.1.1.3)

numído (1.9.2)

pip (7.0.3)

solicitações (2.7.0)

ferramentas de configuração (16.0)

O pip freeze irá produzir uma lista similar dos pacotes instalados, mas a saída utiliza o formato que a instalação do pip espera. Uma convenção comum é colocar esta lista em um arquivo requirements.txt:

(tutorial-ptv) $ pip freeze > requirements.txt

(tutorial-env) $ cat requirements.txt

novas===3.1.1.3

numpy===1.9.2

requests===2.7.0

O requirements.txt pode então ser comprometido com o controle de versão e enviado como parte de uma aplicação. Os usuários podem então instalar todos os pacotes necessários com install -r:

(tutorial-env) $ pip install -r requirements.txt

Coleta de novas===3.1.1.3 (de -r requirements.txt (linha 1))

  …

Recolhendo numpy===1.9.2 (de -r requirements.txt (linha 2))

  …

Coleta de pedidos===2.7.0 (de -r requirements.txt (linha 3))

  …

Instalação de pacotes coletados: novos, numéricos, pedidos

  Executando o setup.py install para novas

Novas-3.1.1.3 numpy-1.9.2 solicitações-2.7.0 instaladas com sucesso