Pergunta

Este deve ser um cenário comum, mas não conseguiu encontrar qualquer post relevante ainda ..

Eu pretendo implantar uma biblioteca Python (eu acho que o mesmo se aplica a aplicações regulares), que faz uso de algumas imagens e outros arquivos de recursos. O que é o local padrão para esses itens? Imagino, por Foo projeto, as escolhas seriam

  • diretório resources ter no repositório de origem e, em seguida, mover arquivos para /usr/share/foo/
  • recursos Coloque diretamente dentro do pacote python que passa sob /usr/lib/python-<version>/foo/

Todas as sugestões?

Editar:. Como sugerido, esclarecendo que a plataforma principal este será executado em é Linux

Foi útil?

Solução

Esta questão é um pouco incompleta, porque uma resposta adequada dependerá do sistema operacional subjacente, como cada um tem o seu próprio modus operandi. No Linux (e OSs mais baseado em UNIX), por exemplo, / usr / share / foo ou / usr / local / share / foo seria o padrão. Em OS X, você pode fazer o mesmo, mas eu acho "/ Library / Application Support / Foo" (apesar de que é geralmente para armazenar configurações e outros enfeites) seria o lugar para colocar essas coisas, embora se você estiver bibliotecas escrita após a "quadro" ideia, todos os recursos seriam incluídos na /Library/Frameworks/Foo.Framework" ... Aplicativos no oS X, por outro lado deve mantém todos os recursos lá dentro do diretório de recursos dentro Foo.app

Outras dicas

Nós colocar os arquivos não py em /opt/foo/foo-1.2/...

Exceto, é claro, para a mídia estática que é servido pelo Apache, que vai para /var/www/html/foo/foo-1.1/media/...

Exceto, é claro, para arquivos de configuração específicas do cliente. Eles vão para /var/opt/customer/foo/...

Aqueles seguir os padrões Linux como eu entendo eles.

Nós tentamos ficar longe de /usr/lib/ e /lib tipos de locais porque aqueles sentem como se estivessem parte da distribuição. Nós inclinar-se para /opt e /var porque eles estão claramente separados dos diretórios Distro Linux.

O padrão localização é onde seus libs padrão vai. Mas não soa para mim do que você escreveu, que você vai querer o seu lib python lá. Eu acho que você deve experimentar Virtualenv .

Se você não quiser passar por todos os problemas (bem, é realmente apenas eleva-se a sudo easy_install virtualenv para você), você pode tentar simplesmente despejar seu lib python em qualquer dir na sua ~/ e fazer algo ao longo das linhas de

import sys
sys.path.append( '/full/path/to/your/lib/goes/here')

para qualquer aplicativo que usa a sua lib.

Por favor, tenha em mente que os exemplos dados são apenas para teste-fins. Para qualquer coisa live-ish, eu recomendo que você use distutil . Exemplos de uso são dadas aqui .

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