Eclipse e python… problemas de caminho

3

Eu executo alguns scripts python em um servidor, eles estão sob um repositório cvs e, por várias razões, usam nomes de caminho absolutos.

Estou tentando usar o eclipse como um editor - eu verifico os projetos, mas quando os executo, descubro que os arquivos não estão onde o código os espera. ('/home/staff/root/analysis/test.txt' em vez de '../test.txt' por exemplo)

Existe uma maneira de fazer o eclipse enganar o python pensando que existe uma estrutura de diretórios diferente? Se eu fiz uma busca / substituição global de '/ home / staff / root / analysis /' para '..', isso funcionaria, mas não parece muito semelhante a um guru ...

alguma ideia?

    
por Joe 29.10.2011 / 01:10

2 respostas

1

Eu não tenho uma resposta para sua pergunta no sentido mais restrito. Eu tenho duas sugestões que podem alcançar o mesmo fim.

Sugestão 1: Symlink

Se as dependências de arquivo estiverem enraizadas em uma árvore comum (ou um pequeno número de árvores), você poderá criar um link simbólico para os arquivos apropriados. Então, digamos que você queira que /home/staff/root/analysis/test.txt resolva para /path/to/working/directory/test.txt, então você pode fazer isso:

$ sudo ln -fns /path/to/working/directory /home/staff/root/analysis 

Isso requer privilégios de root. O efeito seria que todo o prefixo do caminho / home / staff / root / analysis resolveria para o diretório / path / to / working /. Isso se aplica aos arquivos imediatamente abaixo do prefixo, bem como a todos os subdiretórios.

Sugestão 2: Suportar opções de configuração para dependências de tempo de execução

Se os arquivos forem realmente necessários para o tempo de execução ou o teste, eles devem fazer parte do pacote. Descrever exatamente como fazer isso está além do escopo desta resposta, mas aqui estão alguns recursos, dos quais você já deve estar bem ciente:

  • Programação especializada em Python link
  • Use o SafeConfigParser para analisar arquivos conf / ini (por exemplo, data-dir = / home / staff / root / analysis)
  • Use argparse para obter opções da linha de comando / override conf (por exemplo, --data-dir = ..)
por 30.12.2011 / 18:28
0

Se você quiser mudar caminhos relativos codificados em absolutos, você sempre pode editar o texto com qualquer editor (sed), mas duvido que seja o que você realmente precisa.

Provavelmente o problema é que você não está localizado no diretório que a ferramenta espera que você esteja ao executar algo, um simples os.chdir deve permitir que você mude isso.

Se não seguir o conselho da Reece.

    
por 21.03.2013 / 12:59