Caminho do arquivo após a instalação

2

Estou usando rapidamente ide e estou tendo problemas com o caminho de arquivo. Onde colocar arquivos adicionais exigidos pelo aplicativo? Quando coloco arquivos adicionais em / data / folder depois que o aplicativo é instalado, qual será o novo caminho? Está armazenado em /opt/extras.ubuntu.com/projectName/share ou em / usr / share /? De acordo com as regras do showdown do aplicativo, ele deve estar em opt.

O aplicativo precisará de permissão de root para gravar em seus arquivos? Como acessar os caminhos de arquivos dentro do código python?

    
por user26030 14.07.2012 / 18:12

3 respostas

1

Eu estava me perguntando a melhor maneira de fazer isso no passado, e olhando o exemplo no link para o media player (link parece para estar morto nos dias de hoje), eles usam o módulo helpers que está lá por padrão ao usar rapidamente.

from <appname>_lib import helpers

def get_path(self):
    file_path = helpers.get_media_file("filename.ext")
    file_path = file_path.replace("file:///", "")
    return file_path

Se você der uma olhada no código real dos auxiliares, isso apenas procura na pasta de mídia, dentro da pasta de dados.

Isso retorna o caminho do arquivo prefixado com "file: ///" que nem sempre é aceito, daí a remoção acima.

    
por trent 15.07.2012 / 09:02
2

Quando você deseja gravar caminhos de arquivo, é necessário escrevê-los de maneira relativa. Então, no Glade você tem que escrever

../media/icon.png

Com os dois pontos (.) você volta para a pasta /data . Então você diz para ir em / media e abrir icon.png. Você precisa fazê-lo porque os arquivos .ui do Glade são armazenados em /projectname/data/ui/ - a partir daqui, é necessário voltar por 1 e, em seguida, até a pasta /media .

Ao escrever o arquivo .desktop.in (a entrada da área de trabalho / aplicativo), por exemplo, para incluir o ícone, você deve escrevê-lo assim:

./data/media/icon.png

Tome cuidado para escrever apenas um ponto.

Oh, o que eu esqueci: O aplicativo não precisa de acesso root para gravar arquivos e faz rapidamente todas as embalagens importantes (com o / opt /) automaticamente. Você não precisa cuidar de / opt /.

Espero poder ajudar você com suas perguntas.

PS: Observe que o Ubuntu App Developer Showdown acabou!

    
por slashcrack 14.07.2012 / 18:59
0

Eu acho que a função get_data_path () em [appname] _lib / [appname] config.py está configurada para fazer exatamente isso. Então, no Python, importe essa função no começo do seu arquivo:

from [appname]_lib.[appname]config.py import get_data_path

Então, quando você quiser usar um arquivo em seu diretório de dados, você pode obter o seguinte caminho:

data_path = get_data_path()
filepath = os.path.join(data_path, 'mydatafile.css')
    
por monotasker 12.08.2012 / 21:33