Python são coleções de módulos (código reutilizável) que estendem e melhoram a funcionalidade do núcleo da linguagem Python. Os desenvolvedores Python contribuem para o repositório oficial do Python Package Index (PyPI), tornando seus pacotes disponíveis para a comunidade Python sob termos de licença de código aberto. A Python Packaging Authority (PyPA) gerencia o repositório, e mantém um conjunto padrão de ferramentas para construir, distribuir e instalar pacotes Python.

Nos supercomputadores de pesquisa da Universidade de Indiana, muitos pacotes de terceiros já estão instalados para complementar os compiladores Python comumente usados. Se você tem uma necessidade única de um pacote Python de terceiros que ainda não está instalado, você pode usar pip ou setup.py para instalar o pacote no seu diretório home. Se você sabe que vários pesquisadores estão interessados em usar um pacote Python que ainda não está instalado, você pode pedir para tê-lo instalado como um pacote do site para todo o sistema.

Nesta página:

  • Instalar pacotes Python para uso pessoal
    • Configurar o seu ambiente de utilizador
    • Instalar um pacote usando pip
    • Instalar um pacote usando o seu setup.py script
  • Entender a ordem de busca do módulo

Instalar pacotes Python para uso pessoal

Configurar seu ambiente de usuário

Instalar pacotes Python, você deve ter o Python adicionado ao seu ambiente de usuário. Em Carbonate, Python é adicionado ao seu ambiente de usuário por padrão. No Big Red 3, ou se você removeu anteriormente o Python, use as seguintes instruções para adicionar o Python ao seu ambiente de usuário:

  1. Cheque quais módulos estão atualmente carregados; na linha de comando, entre:
     module list
  2. Se o Python não está entre a lista de módulos carregados atualmente, use o comando module load para adicioná-lo; por exemplo:
    • Para adicionar a versão padrão, na linha de comando, digite:
      •  module load python
      • Para adicionar uma versão não predefinida:
        1. Verifica quais versões estão disponíveis; na linha de comando, digite:
           module avail python
        2. Carregar a versão preferida; na linha de comandos, digite (substitua version_number pelo número da versão preferida):
           module load python/version_number
    • Se o Python estiver listado entre os módulos actualmente carregados, mas preferir ou precisar de utilizar outra versão, deve remover o módulo actualmente carregado antes de carregar a outra versão. Para fazer isto com um comando, use module switch; por exemplo, na linha de comando, digite (substitua current_version pelo número da versão do módulo atualmente carregado python e new_version pelo número da versão preferida):
       module switch python/current_version python/new_version

Para fazer alterações permanentes no seu ambiente, edite o seu ficheiro~/.modules. Para mais, veja Use um arquivo .modules no seu diretório home para salvar seu ambiente de usuário em um supercomputador de pesquisa IU.

Para mais informações sobre o uso de Módulos para configurar seu ambiente de usuário, veja Use Módulos para gerenciar seu ambiente de software em supercomputadores de pesquisa IU.

Instale um pacote usando pip

A ferramenta de gerenciamento de pacotes pip, uma das ferramentas padrão mantidas pela Python Package Authority (PyPA), é a ferramenta recomendada para instalar pacotes do repositório Python Package Index (PyPI).

Para instalar um pacote do repositório PyPI (por exemplo, foo), use o comando pip install com o flag --user; por exemplo:

A opção --user direciona pip para baixar e descompactar a distribuição de código fonte do seu pacote (por exemplo, foo) no diretório do usuário site-packages para o Python em execução; por exemplo:

 ~/.local/lib/python3.6/site-packages/foo

Python procura automaticamente por módulos neste diretório, portanto, não é necessário pré-definir este caminho para a variável de ambiente PYTHONPATH.

Se você omitir a opção --user, pip tentará instalar seu pacote no diretório global site-packages (onde você não tem as permissões necessárias); como resultado, a instalação falhará.

Para mais informações sobre o uso de pip, veja a página de instalação do pip no Guia do Usuário do pip.

Instalar um pacote usando sua configuração.py script

Para instalar um pacote Python a partir de um código diferente do repositório PyPI, você mesmo pode baixar e descompactar a distribuição do código fonte, e então usar seu script setup.py para instalar o pacote no diretório do usuário site-packages:

A opção --user direciona setup.py para instalar o pacote (por exemplo, foo) no usuário site-packages diretório para o Python em execução; por exemplo:

 ~/.local/lib/pythonX.Y/site-packages/foo

Python procura automaticamente por módulos neste diretório, portanto não é necessário preender este caminho para a variável de ambiente PYTHONPATH.

Se omitir a opção --user, setup.py tentará instalar o pacote no diretório global site-packages (onde você não tem as permissões necessárias); como resultado, a instalação falhará.

Alternativamente, você pode usar a opção --home ou --prefix para instalar seu pacote em um local diferente (onde você tem as permissões necessárias); por exemplo, para instalar seu pacote em um subdiretório (por exemplo, python-pkgs):

Nota:
Se você instalar seu pacote em um local que não seja o diretório do usuário site-packages, você precisará preender o caminho para esse diretório para sua variável de ambiente PYTHONPATH. Para mais informações sobre o PYTHONPATH, veja o PYTHONPATH e a ordem python import abaixo.

Para mais sobre o uso de setup.py para instalar pacotes, veja Instalando Módulos Python (versão Legacy).

Entenda a ordem de busca do módulo

Conhecendo como o interpretador Python responde a import declarações podem ajudá-lo a determinar porque um determinado módulo ou pacote não está carregando, ou porque uma versão inesperada de um pacote está carregando, mesmo que a versão correta esteja instalada e o caminho para sua localização esteja listado em sua variável de ambiente PYTHONPATH.

Quando Python lança, ele procura os caminhos encontrados em sys.path, uma lista de diretórios que determina o caminho de pesquisa do interpretador para os módulos. A variável sys.path é inicializada a partir dos seguintes locais, nesta ordem:

  1. O diretório contendo o script usado para invocar o interpretador Python (se o interpretador for invocado interativamente ou o script for lido a partir da entrada padrão, este primeiro item, path, permanece uma string vazia, que direciona o Python para procurar módulos no diretório de trabalho atual primeiro)
  2. Os diretórios listados em PYTHONPATH
  3. O diretório específico da versão site-packages para a instalação do Python em execução; por exemplo:
     <sys.prefix>/lib/pythonX.Y/site-packages

    Neste exemplo, <sys.prefix> é o caminho para a instalação do Python em execução; X.Y é o número da versão (por exemplo, 3.8) da instalação do Python em execução.

Por padrão, Python também importa o módulo site.py na inicialização, que adiciona caminhos específicos do local ao caminho de pesquisa do módulo (sys.path), incluindo o caminho para o seu usuário site-packages dentro do seu diretório home; por exemplo (X.Y será o número da versão da instalação do Python em execução):

 ~/.local/lib/pythonX.Y/site-packages

As site.py adiciona caminhos a sys.path, ele os procura por arquivos de configuração de caminhos (.pth), que contêm diretórios adicionais que são adicionados a sys.path. Se um diretório contém múltiplos .pth arquivos, site.py os processa em ordem alfabética.

Entretanto, alguns .pth arquivos contêm comandos embutidos que inserem entradas de diretório no início do caminho de busca do módulo (à frente do caminho padrão da biblioteca). Como resultado, um módulo de um dos directórios inseridos será carregado em vez do módulo com o mesmo nome do directório padrão da biblioteca. Isto pode ser um comportamento indesejado e confuso, a menos que se pretenda uma tal substituição.

Nota:

Se suas requisições import são consistentemente interrompidas por site.py e .pth arquivos, tente invocar o interpretador Python com o -S (maiúsculo “S”):

 python -S

Isso desabilita a importação automática de site.py e, como resultado, evita que ele manipule sys.path. No entanto, também previne que site.py adicione o seu utilizador site-packages ao directório sys.path. Para importar site.py sem adicionar seu usuário site-packages diretório para sys.path, invoque Python com a opção -s (letras minúsculas “s”):

 python -s

Para ver quais diretórios Python digitaliza quando você emite import comandos, na linha de comando, entre:

 python -c "import sys; print ('\n'.join(sys.path))"

Alternativamente, inicie o Python em modo interativo, e então invoque os mesmos comandos nesta ordem (>>> é o prompt primário do Python):

 >>>import sys >>>print ('\n'.join(sys.path))
Nota:
A variável sys.path é apenas uma lista editável de strings que você pode editar como qualquer outra lista Python. Evite editar o primeiro item da lista (path), porque muitos pacotes assumem que ele se refere ao diretório contendo o script usado para invocar o interpretador Python.

Documentos relacionados

Deixe uma resposta

O seu endereço de email não será publicado.