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

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

Sou desenvolvedor de um aplicativo Python GUI. Gostaria que os usuários do meu aplicativo pudessem instalar o aplicativo usando pip porque nem todas as suas dependências foram incluídas no Debian ainda, e não prevejo que essa situação mude tão cedo.

Um PPA seria uma boa idéia, é claro, mas no meu caso isso significaria criar do zero pacotes Debian para pacotes Python que não são meus e envolvem coisas nas quais certamente não tenho habilidade, por exemplo, SWIG.

A próxima melhor alternativa para um PPA é o pip do Python. E funciona muito bem! Todos os melhores conselhos dizem para usar a --useropção durante a execução pip install. Os desenvolvedores do pip dizem isso e minha impressão é que o Ubuntu realmente usa isso como padrão.

No entanto, no Ubuntu estou vendo dois problemas ao --userusar 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 algumas outras distros. (O setup.py usa setuptools' entry_points).
  2. Por algum motivo inexplicável, mesmo o .desktoparquivo estando em ~/.local/share/applications, o aplicativo não aparece no Dash, mesmo após o logout. Infelizmente, as páginas man instaladas ~/.local/share/man/man1também não aparecem quando o usuário executa man a partir do terminal.

Posso pedir aos usuários do Ubuntu que criem um ~/bindiretório e adicionem um link simbólico ao meu aplicativo ~/.local/bin, mas isso não resolverá o problema da página de manual ou a falta de uma maneira de iniciar o aplicativo a partir do Dash.

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

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

Responder1

Depois de conversar com os desenvolvedores do Ubuntu no IRC, meu entendimento agora é que o Ubuntu segue o Debian e adiciona ~/bin ao PATH se a pasta existir. Não há planos de fazer o mesmo para ~/.local/bin. Portanto, 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 Debian que faça algumas dessas coisas, o que é uma pena, como Tenho certeza de que isso atinge todos os outros desenvolvedores de aplicativos Python que também dependem do pip.

informação relacionada