As pastas de importação podem ser extraídas adicionando o seguinte código-fonte:
import sys
print sys.path
exemplo de geração automática de link simbólico seria:
ln -s \`pip show em | grep "Location"| cut -d " " -f2\` \`python -m site --user-site\`
em vez de "em" você pode usar outro pacote que "acabou de instalar, mas o python não consegue ver"
abaixo vou explicar em mais detalhes conforme solicitado no comentário.
suponha que você instalou o módulo python em ou pyserial com o seguinte comando (os exemplos são para ubuntu):
sudo pip install pyserial
e a saída é assim:
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
a questão seria a seguinte - python não consegue ver o módulo pyserial, por quê? porque o local onde o módulo foi instalado não é aquele que o python está procurando para sua conta de usuário específica.
solução - temos que criar um link simbólico a partir do caminho onde o pyserial chegou para o caminho que o seu python está procurando.
O comando de criação de link simbólico seria:
ln -s <what_to_link> <where_to_link>
em vez de digitar a localização exata, pedimos ao pip que nos diga onde armazenou os módulos, executando o comando:
pip show pyserial | grep "Location"| cut -d " " -f2
em vez de digitar o local exato, pedimos ao python que nos diga onde ele procura os módulos sendo instalados executando o comando:
python -m site --user-site
ambos os comandos devem ser escapados com o caractere "` "(geralmente à esquerda do botão 1 para os teclados dos EUA)
no resultado, o seguinte comando será fornecido para ln e o link simbólico ausente será criado:
ln -s /usr/local/lib/python2.7/dist-packages /home/<your_username>/.local/lib/python2.7/site-packages
ou algo semelhante, dependendo de sua distro e padrões de python / pip.