Este é provavelmente um problema com sua variável de ambiente PYTHONPATH ou com a falta de um. Usando apt-get
, o matplotlib será instalado no prefixo do diretório /usr
. Então você encontrará todo o pacote instalado em algum lugar como /usr/lib/python2.7/site-packages/matplotlib
.
Você pode confirmar isso com um comando como: dpkg -L python-matplotlib
.
Quando você fez o download separadamente da fonte matplotlib, construiu e instalou você mesmo usando os comandos acima, você terá que instalá-lo no prefixo /usr/local
. Isso é bom, já que as bibliotecas do sistema (em /usr
prefix) são gerenciadas por dpkg
e você não deseja sobrescrever ou interferir nesses arquivos, por medo de violar outro, dependendo do pacote ou deixando os arquivos não gerenciados mentindo por aí.
Agora, você provavelmente está usando o python instalado pelo sistema. Ele vem pré-instalado em todas as distribuições Linux, então por que você não? Mas isso é instalado em /usr
. O caminho de pesquisa do módulo padrão do Python é construído a partir do prefixo no qual ele está instalado. Portanto, seu sistema python (configurado com --prefix=/usr
), por padrão, procurará apenas por módulos instalados em /usr/lib/python2.7
, ignorando completamente os módulos que você instalou manualmente em /usr/local/lib/python2.7
.
Então, para contornar isso, aqui estão algumas soluções possíveis: -
-
(Não faça isso!) Crie e instale o matplotlib com
--prefix=/usr
. -
Edite seu
PYTHONPATH
para incluir/usr/local/lib/python2.7/site-packages
Esta é uma solução viável quando é sua própria máquina. Você instala pacotes lá como usuário root e edita~/.bashrc
ou/etc/bash.bashrc
para exportar a variável de ambiente PYTHONPATH. É um pouco confuso para uma máquina ou servidor multiusuário, já que todos esses pacotes precisam ser atualizados manualmente pelo usuário root, o que pode nem sempre ser conveniente. É muito melhor deixar isso para o seu gerenciador de pacotes do sistema. -
Use
easy_install
para instalar o matplotlib (ou qualquer biblioteca em PyPi ) em algum lugar onde o Python o encontre. Neste caso, ele provavelmente se queixaria de que você já o instalou (portanto, você deve desinstalá-lo primeiro, comapt-get
).easy_install -m matplotlib
O PyPi geralmente é atualizado com as versões mais recentes do pacote Python. Você saberá por que, se você tiver que carregar um pacote lá (peça de p * ss), então este é um método confiável de obter pacotes python atualizados. Você precisará do pacote
distribute
instalado - instale-o comapt-get
. -
Instale o matplotlib 1.2 no seu diretório de usuários. Mais tarde, você poderá removê-lo quando os repositórios forem atualizados para a versão desejada.
python setup.py install --user
O último método é o meu método favorito. Descobri isso há relativamente pouco tempo, mas não é necessário editar nenhum sistema ou arquivos de configuração ou variáveis de ambiente específicos do usuário, não interfere nos pacotes do sistema e não precisa de um usuário sudo
para instalar.
Isso instalará o matplotlib em ~/.local/lib/python2.7
no Linux; em ~/Library/...
no OS X e provavelmente em algum outro lugar em outras distros. De qualquer forma, esse método é suportado em todas as plataformas e seus módulos específicos do usuário serão carregados de preferência em relação aos do sistema.
Agora vá se divertir com o matplotlib. É um ótimo pacote!
P.S. Não construa pacotes como usuário root. Eu acho que é uma prática ruim deixar arquivos de propriedade raiz em diretórios de usuários.
P.P.S. Você pode verificar onde o matplotlib (ou qualquer outro módulo python) foi carregado a partir do interpretador Python. por exemplo: -
>>> import matplotlib
>>> print matplotlib.__file__
/usr/lib/python2.7/site-packages/matplotlib/__init__.pyc