pip install --user significa que los usuarios no pueden ejecutar la aplicación desde Dash o terminal

pip install --user significa que los usuarios no pueden ejecutar la aplicación desde Dash o terminal

Soy el desarrollador de una aplicación GUI de Python. Me gustaría que los usuarios de mi aplicación pudieran instalarla usando pip porque no todas sus dependencias han llegado a Debian todavía, y no anticipo que esa situación cambie pronto.

Un PPA sería una buena idea, por supuesto, pero en mi caso eso significaría crear desde cero paquetes Debian para paquetes Python que no son míos e involucran cosas en las que ciertamente no soy experto, por ejemplo, SWIG.

La siguiente mejor alternativa a un PPA es el pip de Python. ¡Y funciona genial! Los mejores consejos dicen que utilices la --useropción cuando ejecutes pip install. Los desarrolladores de pip dicen esto y mi impresión es que Ubuntu en realidad usa esto por defecto.

Sin embargo, en Ubuntu veo dos problemas cuando uso --usercon pip:

  1. El ejecutable de la aplicación se está instalando en ~/.local/bin, que no está en la ruta predeterminada en Ubuntu, a diferencia de Fedora y posiblemente otras distribuciones. (El setup.py usa setuptools' entry_points).
  2. Por alguna razón inexplicable, aunque el .desktoparchivo está en formato ~/.local/share/applications, la aplicación no aparece en el Dash, incluso después de cerrar sesión. Desafortunadamente, las páginas de manual instaladas ~/.local/share/man/man1tampoco aparecen cuando el usuario ejecuta man desde la terminal.

Puedo pedirles a los usuarios de Ubuntu que creen un ~/bindirectorio y agreguen un enlace simbólico a mi aplicación ~/.local/bin, pero eso no resolverá el problema de la página de manual o la falta de una forma de iniciar la aplicación desde el Dash.

¿Cómo aconsejo a mis usuarios que resuelvan mejor estos problemas?

El comando exacto que recomiendo a los usuarios que instalen espython3 -m pip install --user foo-1.0.tar.gz

Respuesta1

Después de hablar con los desarrolladores de Ubuntu en IRC, ahora tengo entendido que Ubuntu sigue a Debian y agrega ~/bin a la RUTA si la carpeta existe. No hay planes de hacer lo mismo con ~/.local/bin. Por lo tanto, el usuario final debe ajustar manualmente su ruta o agregar un enlace simbólico, etc. Como desarrollador de aplicaciones, supongo que necesitaré un script de instalación especial para usuarios de Ubuntu y Debian que haga algunas de estas cosas, lo cual es una verdadera lástima, ya que Estoy seguro de que esto afecta a todos los demás desarrolladores de aplicaciones Python que también dependen de pip.

información relacionada