Pergunta

Quando se trata de organizar módulos python, meu sistema Mac OS X é uma bagunça. Eu pacotes em torno de mentir em todos os lugares no meu hdd e nenhum sistema especial para organizá-los.

Como você manter tudo gerenciável?

Foi útil?

Solução

Meu conselho:

Outras dicas

Além de PEP8 e easy_install, você deve verificar se virtualenv. Virtualenv permite que você tenha várias árvores biblioteca Python diferentes. No trabalho, usamos virtualenv com um ambiente de inicialização para configurar rapidamente um ambiente de desenvolvimento / produção onde estamos todos em sincronia w.r.t versões de bibliotecas etc. Nós geralmente coordenar atualizações da biblioteca.

Existem várias famílias de Python componentry.

  1. O material que vem com o Python. Este cuida de si mesmo.

  2. O material que você tem com easy_install. Isto, também, cuida de si mesmo.

  3. Os pacotes que você teve para obter alguma outra maneira, seja como tarballs ou checkouts do SVN. Crie uma pasta Components. Coloque os downloads ou o SVN está lá em primeiro lugar. A cada momento. Fazer instalações de lá.

  4. Os pacotes que você escreveu que são reutilizáveis. Eu tenho uma pasta Projects com cada projeto nessa pasta. Se o projeto é uma coisa altamente reutilizáveis, tem uma setup.py e eu realmente executar a instalação como se eu o download do mesmo. Eu não tenho muitos deles, mas alguns. Alguns deles podem se tornar projetos de código aberto.

  5. As aplicações finais que você escreve. Eu tenho uma pasta no Projects com cada um desses aplicativos de nível superior. Estes são geralmente grandes, divagar coisas (como sites Django) e não têm setup.py. Por quê? Eles são muitas vezes bastante complexo, com apenas algumas instalações de servidores para gerenciar, e cada uma dessas instalações de servidor é único. Estes geralmente dependem de PYTHONPATH para identificar suas partes.

Observe o tema comum. Ou eles estão Componentes você baixou ou são projetos que você está trabalhando.

Além disso, eu manter este separado (até certo ponto) a partir do cliente. Eu tenho um diretório mestre de pastas do cliente, cada um dos quais tem projetos e cada projeto tem de Vendas e entrega. Nem todos os projetos têm vendas e entrega.

PEP8 e easy_install pode ajudá-lo?

Eu mantenho toda a fonte para meus pacotes dentro de ~ / packages /, e então eu faço uma instalação padrão com "python2.5 setup.py install" sobre eles. Este joga em (para mim) /Library/Frameworks/Python/Versions/current/lib/python2.5/site-packages/. Para o desenvolvimento do meu próprio software, tenho aliases criados para alternar entre tronco / ramos / 1.0, etc, por pré-prending em PYTHONPATH. (Eu tenho que correr 'setup.py build_ext --inplace' em cada um desses diretórios antes que eles vão importar corretamente.)

É importante notar que python2.6 tem um diretório por usuário site-packages, que você pode achar mais conveniente.

O "Módulos" Python página de documentação é um guia útil sobre a organização de código, especificamente os "pacotes" seções

O meu conselho é tentar colocar tudo em seu diretório site-packages (s) a menos que você tenha uma boa razão para não. E eu tento evitar easy_install porque acho que ele tende a cruft a minha sys.path com locais de ovos, mas isso é só comigo. Algumas pessoas acham que é útil.

Se você tem um monte de programas que utilizam bibliotecas diferentes que o conflito pode uns com os outros, você também pode querer verificar virtualenv .

Apenas correu por este site a partir de uma outra questão StackOverflow: http://infinitemonkeycorps.net/docs/pph/ Este endereços mais do que apenas o posicionamento do módulo, mas uma vez que você colocá-lo escrever como você pode facilmente lidar com documentação, testes e distribuição.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top