Ferramentas Pessoais

Ir para o conteúdo. | Ir para a navegação

 

Python, Zope e Plone
Com quem entende do assunto!

Seções
Você está aqui: Página Inicial Aprenda Como executar o seu servidor PyPI pessoal

Como executar o seu servidor PyPI pessoal

— registrado em: ,

Tradução livre do artigo 'how to run your own private PyPI (Cheeseshop) server' http://tarekziade.wordpress.com/2008/03/20/how-to-run-your-own-private-pypi-cheeseshop-server/

Como executar o seu servidor PyPI (Cheeseshop) pessoal

O PloneSoftwareCenter 1.5 apesar de não ter sido lançado, está sendo fortemente desenvolvido, e a versão atual do trunk está funcionando bem para usar como um servidor semelhante ao PyPI. Ele pode ser realmente útil para empresas que desenvolvem softwares Python e estão buscando uma forma de centralizar seus eggs internamente. É o que usamos atualmente na Ingeniweb para trabalhar em projetos de clientes.

Esse tutorial explica como configurar um servidor PloneSoftwareCenter, se você quer ser um early-adopter do que será a próxima versão em execução do software center do plone.org em alguns meses (mas esse código deve ser usado por seu próprio risco, é claro ;))

 

Porque um PyPI particular?

Você tem alguns pacotes python que você quer tratar da mesma forma que o Cheeseshop faz. Em outras palavras, você quer trabalhar com eles com easy_install, zc.buildout, etc..

Mas esses pacotes são privados da sua empresa…

O modo mais simples é salvar seus eggs em algum lugar compartilhado. Mas distutils e setuptools fornecem um conjunto interessante de comandos para construir e enviar eggs automaticamente para o PyPI ou qualquer servidor que implemente as apis do PyPI.

 

Como? PloneSoftwareCenter!

A comunidade Plone fornece uma ferramenta interessante para gerenciar pacotes Python, e que é compatível com o PyPI. Em outras palavras, ele pode agir como o Cheesehop para interagir com suas ferramentas de linha de comando.

Ele também fornece um conjunto extensivo de features para gerenciar seus releases, executar seus bug trackers, etc.

Veja a seção de produtos do plone.org, ele usa o PSC.

 

4 passos para a instalação

Graças ao zc.buildout, consigurar um Plone Software Center é realmente fácil. Ainda não existem binários disponíveis, então você precisa compilar algumas coisas.

 

Passo 1 - Pré-requisitos

Se você está no, Windows, baixe o arquivo: http://release.ingeniweb.com/third-party-dist/python2.4.4-win32.zip, descompacte-o e execute o “install.bat”. Ele vai instalar o Python 2.4 junto com um conjunto de ferramentas e irá atualizar o PATH

Se você está no Linux, assegure-se de ter o gcc, subversion e make instalados. Então, instale o easy_install e o PIL, assim:

$ wget http://peak.telecommunity.com/dist/ez_setup.py
$ python ez_setup.py
$ easy_install http://release.ingeniweb.com/third-party-dist/PILwoTk-1.1.6.4.tar.gz

 

Passo 2 - instalando o PSC

  • Crie um diretório no seu sistema chamando softwarecenter
  • Obtenho o cóigo do PSC usando o subversion:

      $ svn co http://svn.plone.org/svn/collective/Products.PloneSoftwareCenter/buildout/trunk .
  • Execute o buildout com esse conjunto de comandos:

      $ python bootstrap.py
      $ bin/buildout
  • Vai levar algum tempo para trazer todos os elementos necessários para executar o PSC.
  • Execute o servidor

      $ bin/instance start

 

Passo 3 - configurando o PSC

Vamos criar um website Plone com uma instância do PloneSoftwareCenter:

Seu Software Center está pronto e disponível em http://localhost:8080/plone/catalog

Passo 4 - configurando o lado cliente

Agora vamos configurar o lado cliente para que as pessoas possam usar seu Software Center:

  • Instale o iw.dist:

      $ easy_install iw.dist
  • Crie um arquivo no seu diretório home, chamado .pypirc com esse conteúdo:

      [distutils]
      index-servers =
        pypi
        local

      [pypi]
      username:YOUR_PYPI_LOGIN
      password:YOUR_PYPI_PASSWORD

      [local]
      repository:http://localhost:8080/plone/catalog/
      username:admin
      password:admin

É claro, o valor localhost será diferente se localizado em outra máquina..

iw.dist adiciona dois novos comandos no distutils: mregister e mupload. Esses comandos melhoram o resgistro e upload e fazem o distutils trabalhar com múltiplos servidores. Ele deve ser adicionado ao Python 2.6 muito em breve. vamos usar !

Agora, você tem dois novos comandos no distutils, chamados ‘mregister‘ e ‘mupload‘ que vão permitir que você use ou o seu PSC ou o PyPI.

Vamos enviar um egg para o PSC:

$ python setup.py mregister sdist bdist_egg mupload -r local

Vamos enviar um egg para o PyPI:

$ python setup.py mregister sdist bdist_egg mupload -r pypi

Se o -r é omitido, o pypi é o padrão.

Se você quer usar o no zc.buildout ou easy_install, você pode informar http://localhost:8080/plone/catalog/simple como um find-links ou valor de índice:

[buildout]  find-links = http://localhost:8080/plone/catalog/simple

Ou:

$ easy_install -f http://localhost:8080/plone/catalog/simple my.egg
Isso é tudo!
Ações do documento