Graças a George eu lentamente cheguei à resposta. A raiz do problema está em que eu instalei minha versão do Python 3.5.2 de uma fonte ao invés do gerenciador de pacotes aptitude do Ubuntu.
Basicamente, se o Python é instalado a partir de uma fonte, então, para procurar por pacotes de terceiros, ele usa /usr/local/lib/python3.5/site-packages
, mas se foi instalado usando apt
, o Python procura /usr/local/lib/python3.5/dist-packages
. Isso é para garantir que as várias versões do Python não fiquem entrelaçadas. Aqui está outra pergunta que explica: qual é a diferença entre as diferenças? pacotes e pacotes de sites? .
Solução:
Minha instalação do Python3 estava procurando em pacotes de sites e ignorando dist-packages, então eu adicionei um arquivo de caminho para fazê-lo olhar dentro de dist-packages também.
cd /usr/local/lib/python3.5/site-packages
sudo vim dist-packages.pth
(Press i to go into insert mode inside Vim)
../dist-packages
:x (and Press Enter/Return)
Agora, quando o Python procura dentro de /site-packages
, ele encontra dist-packages.pth
, o que faz com que ele entre em /dist-packages
.
Outra solução:
Alguém teve um problema exatamente Ao contrário do meu, onde a instalação do Python só olhava dentro de /dist-packages
, eles usavam exatamente o mesmo método acima, exceto que em vez de fazer um arquivo dist-packages.pth
(contendo ../dist-packages
) dentro de /site-packages
, eles fizeram site-packages.pth
arquivo (contendo ../site-packages
dentro de /dist-packages
.
Verifique se funcionou:
A maneira fácil de verificar se isso funcionou é entrar em seu interpretador Python e imprimir sys.path. Agora deve conter os dois caminhos de pacotes:
charliebrown@playground:/usr/local/lib/python3.5/site-packages$ python3
Python 3.5.2 (default, Nov 19 2016, 02:36:25)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys; print(sys.path)
['', '/usr/local/lib/python35.zip', '/usr/local/lib/python3.5', '/usr/local/lib/python3.5/plat-linux', '/usr/local/lib/python3.5/lib-dynload',
'/usr/local/lib/python3.5/site-packages', '/usr/local/lib/python3.5/dist-packages']
Espero que isso ajude alguém um dia ...