Estaba haciendo esto hoy, parece que la documentación clara es escasa para las personas que desean mantener un cierto control sobre lo que está instalado y dónde.
Suponiendo que ha ejecutado pip3 install lo que sea, el valor predeterminado es poner cosas en ~ / .local, como ya sabe. Es habitual en Unix dividir los tipos de archivo, poner los "ejecutables" en ~ / .local / bin.
En una terminal, escriba esto para ver su ruta ahora:
$ echo $PATH
Comprueba que tienes las cosas de Python instaladas en ~ / .local
$ ls -la ~/.local/bin
Eso confirma que los archivos ejecutables están allí, o lo hacen por mí. Si esos permisos de archivo muestran "x", son ejecutables.
Ahora, agregue ese directorio a la ruta dentro de la terminal
$ export PATH=~/.local/bin:$PATH
Verifique su camino nuevamente para ver el cambio. Recuerde que es una configuración temporal solo para esa sesión de terminal. No se aplica a otros terminales al mismo tiempo o en el futuro. Es un buen lugar para probar cosas.
Después de eso, cada programa ejecutable dentro de ~ / .local / bin debería ejecutarse si escribe su nombre en la línea de comando. No es necesario ejecutar "~ / .local / bin / jupyter", por ejemplo. Solo escribe "jupyter". No necesita el "./" que ve a veces, es cuando inicia un programa desde el directorio de trabajo que no está en la ruta.
Si luego decide que desea hacer que sea permanente, de modo que ~ / .local / bin esté siempre en su RUTA, puede hacerlo editando algunos archivos de configuración del entorno. Dependiendo de su configuración, por ejemplo, en el archivo de mi carpeta de inicio ".bashrc", la última línea es "export PATH = $ PATH: $ HOME / bin". Entonces podría poner $ HOME / local / bin al frente de eso. Tenga en cuenta que escribí $ HOME, no "~" allí. Luego, cada vez que uso un shell BASH, PATH se arreglará. Si puede usar otros shells, creo que lo correcto es editar el ~ / .profile en su lugar. Creo que todos los shells en Ubuntu obtendrán ese archivo.
En mi caso, instalé varios programas con pip3, como jupyter. Una forma de asegurarse de dónde se instaló es ejecutar
$ pip3 list
muestra todos los paquetes disponibles, no solo los instalados por pip3.
$ pip3 show jupyter
En mi caso, por ejemplo:
---
Metadata-Version: 2.0
Name: jupyter
Version: 1.0.0
Summary: Jupyter metapackage. Install all the Jupyter components in one go.
Home-page: http://jupyter.org
Author: Jupyter Development Team
Author-email: jupyter@googlegroups.org
Installer: pip
License: BSD
Location: /home/pauljohn/.local/lib/python3.5/site-packages
Requires: nbconvert, ipykernel, ipywidgets, notebook, jupyter-console, qtconsole
Classifiers:
Intended Audience :: Developers
Intended Audience :: System Administrators
Intended Audience :: Science/Research
License :: OSI Approved :: BSD License
Programming Language :: Python
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.3
Programming Language :: Python :: 3.4
No quiero que esto suene como una llama, pero puede parecer un ataque. Te advierto que no sigas ansiosamente los consejos que algunas personas aquí ofrecerán para ejecutar "sudo pip3 xxx". En general, preferiría ejecutar instalaciones raíz solo con paquetes Debian, no con pip3. Si corre sin el sudo, está limitando el peligro a la cuenta de usuario. Si hace tonterías mientras ejecuta un script como root, puede dispersar archivos por todo su disco duro y arrepentirse. Especialmente si otras personas inician sesión y usan esa computadora, evite hacer algo como root a menos que tenga confianza.
También vale la pena señalar, que pip3 se instala por defecto en ~ / .local, pero eso no es necesario. Lea "man pip3", busque "-t" (--target). Puede especificar el directorio de instalación. Creo que es bueno porque puede limitar cualquier daño a otro directorio y eliminarlo cuando lo desee. ~ / .local podría tener otras cosas valiosas instaladas por otros programas y preferiría no borrarlas. Pienso en ~ / .local como un lugar más para la configuración que para los programas de todos modos.