Las carpetas de importación se pueden extraer agregando el siguiente código fuente:
import sys
print sys.path
El ejemplo de generación automática de enlaces simbólicos sería:
ln -s \`pip show em | grep "Location"| cut -d " " -f2\` \`python -m site --user-site\`
en lugar de "em", puede usar otro paquete que "acaba de instalar pero Python no puede verlo"
a continuación, explicaré con más detalles como se solicita en el comentario.
supongamos que ha instalado el módulo de python em o pyserial con el siguiente comando (los ejemplos son para ubuntu):
sudo pip install pyserial
y la salida es así:
Collecting pyserial
Downloading pyserial-3.3-py2.py3-none-any.whl (189kB)
100% |████████████████████████████████| 194kB 2.3MB/s
Installing collected packages: pyserial
Successfully installed pyserial-3.3
la pregunta sería la siguiente: Python no puede ver el módulo pyserial, ¿por qué? porque la ubicación donde se instaló el módulo no es la que Python está buscando para su cuenta de usuario en particular.
solución: tenemos que crear un enlace simbólico desde la ruta donde llegó pyserial hasta la ruta donde está buscando su python.
El comando de creación de enlace simbólico sería:
ln -s <what_to_link> <where_to_link>
en lugar de escribir la ubicación exacta, le pedimos a pip que nos diga dónde almacenó los módulos ejecutando el comando:
pip show pyserial | grep "Location"| cut -d " " -f2
en lugar de escribir la ubicación exacta, le pedimos a Python que nos diga dónde busca los módulos que se están instalando ejecutando el comando:
python -m site --user-site
Ambos comandos deben escaparse con el carácter "` "(generalmente a la izquierda de su botón 1 para los teclados de EE. UU.)
como resultado, se proporcionará el siguiente comando para ln y se creará el enlace simbólico faltante:
ln -s /usr/local/lib/python2.7/dist-packages /home/<your_username>/.local/lib/python2.7/site-packages
o algo similar, dependiendo de su distribución y los valores predeterminados de python / pip.