Este tutorial compreende a instalação para ambiente de desenvolvimento, para produção siga este tutorial Configurando repositório pypi na rede interna
Instalar devpi-server e dependências
$ pip install -U devpi-web devpi-server devpi
Comandos devpi-server
Iniciar devpi-server 1ª vez
O comando abaixo iniciará o devpi-server com uma interface web em: http://localhost:3141, e criará um repositório local para acesso off-line.$ devpi-server --start --init
Iniciar devpi-server
$ devpi-server --start
Parar devpi-server
$ devpi-server --stop
Recriar indice de busca para devpi-server
$ devpi-server --recreate-search-index
Criar relação de pacotes do repositório local
Abaixo do twine acrescente todos os outros pacotes necessários para acesso off-line.$ cat > ~/requirements.txt<< eof pip wheel eggs pytest twine eof
Exemplo
$ cat > ~/requirements.txt<< eof pip wheel eggs pytest twine incolumepy.exceptions>=0.3.0 incolumepy.saj-projects>=3.1.1.dev20181025 incolumepy.sequencias<1.1 incolumepy.utils!=1.0.0,!=1.0.1,>= 0.9.3 eof
Atualizar o indice de pacotes
cat ~/requirements.txt |while read a; do pip install -U --index http://localhost:3141/root/pypi $a; done
Estrutura
Após Atualizar o indice de pacotes, será criado a arvore de diretórios ~/.devpi/server/+files/root/pypi/, com todos os pacotes referenciados em ~/requirements.txt, que estará disponível off-line conforme o servidor https://pypi.org.
O backup desta estrutura de diretório garante a recuperação dos pacotes no servidor pypi local, sem a necessidade de acesso web.
Backup dos pacotes
$ cd ~/ $ tar cvzf devpi_pct.tar.gz .devpi
Recuperando backup
$ devpi-server --serverdir=/opt/.devpi/ --start --init $ devpi-server --serverdir=/opt/.devpi/ --stop $ tar xvzf devpi_pct.tar.gz -C /opt $ devpi-server --serverdir=/opt/.devpi/ --start
Disponibilizar o serviço em outra porta modo foreground
$ devpi-server --serverdir=/tmp/.devpi/ --port 8080
Disponibilizar o serviço em outra porta
$ devpi-server --serverdir=/tmp/.devpi/ --port 8080 --start
Disponibilizar acesso remoto
$ devpi-server --serverdir=/tmp/.devpi/ --port 8080 --host 0.0.0.0 --start
Gerenciar pacotes
Detalhes em: devpi - gerência de pacotesGerenciar Usuário
Detalhes em: Gerenciando Usuários devpi-client e Gerenciando Usuários devpi-client (part 2)Gerenciar Novos Indices no repositório interno
Detalhes em: devpi indexInserir pacotes no repositório interno
# Verificar se o servidor está ativo $ devpi-server --status $ devpi-server --serverdir=/tmp/.devpi/ --status # Informar a url ao cliente $ devpi use --set-cfg http://localhost:3141 # Verificar URL configurada $ devpi use --urls # Logar com o usuário administrador $ devpi login root $ [senha em branco] # Criar o novo indice $ devpi index -c root/incolumepy volatile=false # Verificar indice criado $ devpi use -l # Ativar o indice criado $ devpi use root/incolumepy # Definir auto configuração do indice $ devpi use --always-set-cfg=yes # Carregamento de pacotes para o repositório interno $ devpi upload --no-vcs --from-dir dist/ $ devpi upload --from-dir dist/incolumepy.saj_projects-3.1.1.dev20181024.tar.gz # Listar pacotes do indice ativo $ devpi list
Usar repositório interno
Volátil
# easy_install easy_install --index=http://192.168.25.23:8080/root/pypi/+simple/ unipy easy_install -U --index=http://192.168.25.23:8080/root/pypi/+simple/ unipy # pip pip install --index=http://192.168.25.23:8080/root/pypi/+simple/ unipy pip install -U --index=http://192.168.25.23:8080/root/pypi/+simple/ unipyPerene
# easy_install cat > ~/.pydistutils.cfg << eof # $HOME/.pydistutils.cfg: [easy_install] index_url = http://localhost:3141/root/pypi/+simple/ eof $ easy_install pandas # pip $ mkdir ~/.pip $ cat ~/.pip/pip.conf << eof # $HOME/.pip/pip.conf [global] index-url = http://localhost:3141/root/pypi/+simple/ # diretiva necessária para pip search [search] index = http://localhost:3141/root/pypi/ eof $ pip install pandas # Ambientes com buildout $ cat > ~/.buildout/default.cfg<< eof [buildout] index = http://localhost:3141/root/pypi/+simple/ eof $ pip install pandas
Atualização do requiriments.txt
$ pip freeze |sort -u | tee -a requirements.txt
Exemplos de uso com pip
$ pip install -r requirements.txt $ pip install -r requirements.txt -f ./path/to/packages $ pip install -r requirements.txt -f file:///path/to/packages $ pip install -r requirements.txt -i http://localhost/dev/test/+simple incolumepy.utils $ pip install -r requirements.txt -i https://10.100.0.150/dev/test/+simple incolumepy.utils $ pip install -r requirements.txt -i http://10.100.0.150/dev/test/+simple --trusted-host 10.100.0.150 incolumepy.utils
Referências
- http://brito.blog.incolume.com.br/2014/12/configurando-repositorio-pypi-na-rede.html
- https://devpi.net/docs/devpi/devpi/latest/%2Bd/index.html
- https://devpi.net/docs/devpi/devpi/latest/+d/quickstart-releaseprocess.html#initializing-a-basic-server-and-index
- http://brito.blog.incolume.com.br/2015/06/devpi-packages.html
- http://brito.blog.incolume.com.br/2015/12/devpi-server-atualizar-o-indice-de-busca.html
- http://brito.blog.incolume.com.br/2015/02/devpi-index.html
- http://brito.blog.incolume.com.br/2015/02/devpi-index.html?m=0
- http://brito.blog.incolume.com.br/2015/02/gerenciando-usuarios-devpi-client.html
- http://brito.blog.incolume.com.br/2015/02/gerenciando-usuarios-devpi-client-part-2.html
Comentários