pip install --user significa que os usuários não podem executar o aplicativo a partir do Dash ou do terminal

1

Eu sou o desenvolvedor de um aplicativo gráfico do Python. Eu gostaria que os usuários do meu aplicativo pudessem instalar o aplicativo usando o pip, porque nem todas as suas dependências entraram no Debian ainda, e eu não prevejo que a situação mude tão cedo.

Um PPA seria uma boa idéia, é claro, mas no meu caso isso significaria criar pacotes Debian a partir do zero para pacotes Python que não são meus e envolver coisas que eu certamente não sou especializado em, por exemplo. SWIG.

A próxima melhor alternativa para um PPA é o pip do Python. E isso funciona muito bem! Todo o melhor conselho diz para usar a opção --user quando executar pip install . Os desenvolvedores do pip dizem isso e a minha impressão é que o Ubuntu na verdade padroniza isso.

No entanto, no Ubuntu, estou vendo dois problemas ao usar --user com pip :

  1. O executável do aplicativo está sendo instalado em ~/.local/bin , que não está no caminho padrão no Ubuntu, em contraste com o Fedora e possivelmente com algumas outras distribuições. (O setup.py usa setuptools ' entry_points ).
  2. Por algum motivo inexplicável, mesmo que o arquivo .desktop esteja em ~/.local/share/applications , o aplicativo não é exibido no Dash, mesmo após o logout. Infelizmente, as man pages instaladas em ~/.local/share/man/man1 também não aparecem quando o usuário executa o homem do terminal.

Eu posso pedir aos usuários do Ubuntu para criar um diretório ~/bin e adicionar um link simbólico ao meu aplicativo em ~/.local/bin , mas isso não vai resolver o problema da página man ou a falta de uma maneira de iniciar o aplicativo o traço.

Como aconselho meus usuários a resolver melhor esses problemas?

O comando exato que estou aconselhando os usuários a instalar é o python3 -m pip install --user foo-1.0.tar.gz

    
por Damon Lynch 10.03.2016 / 15:25

1 resposta

0

Depois de conversar com os desenvolvedores do Ubuntu no IRC, meu entendimento agora é que o Ubuntu segue o Debian e adiciona o ~ / bin ao PATH se a pasta existir. Não há planos para fazer o mesmo para ~ / .local / bin. Assim, o usuário final deve ajustar manualmente seu caminho, ou adicionar um link simbólico, etc. Como desenvolvedor de aplicativos, acho que precisarei de um script de instalação especial para usuários do Ubuntu e do Debian que faz algumas dessas coisas, o que é uma vergonha, Tenho certeza de que isso atinge todos os outros desenvolvedores de aplicativos Python que também dependem do pip.

    
por Damon Lynch 11.03.2016 / 10:38