Erro na instalação do Matplotlib: erro fatal C1083

8

Eu sou relativamente novo na codificação Python e quero aprender sobre estatísticas e gerenciamento de dados no Python. Para isso, gostaria de instalar o Matplotlib, o que está me causando alguns problemas.

Vejo outras pessoas com esse problema, mas ainda não entendi como corrigi-lo.

Para instalar eu uso

pip install matplotlib

Eu tenho as seguintes especificações instaladas

  • Windows 10
  • Python 3.8
  • Microsoft Studio 2019

O primeiro erro que recebi foi instalar o Microsoft Studio, então fiz isso. Eu também tentei atualizar pip

BUILDING MATPLOTLIB 
 matplotlib: yes [3.1.1] 
 python: yes [3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:21:23) [MSC v.1916 32 bit (Intel)]] 
 platform: yes [win32] 

...

 checkdep_freetype2.c
    src/checkdep_freetype2.c(1): fatal error C1083: Cannot open include file: 'ft2build.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.23.28105\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
    ----------------------------------------
ERROR: Command errored out with exit status 1:
user12239916
fonte
O problema que você enfrenta vem de um processo de criação com falha do matplotlib. No entanto, normalmente, o matplotlib terá rodas disponíveis no pip para a maioria das plataformas principais, então eu me pergunto por que ainda está tentando compilar algo. A mensagem na linha de comando informa alguma coisa sobre qual versão está tentando criar?
ImportanceOfBeingErnest
Oi IMportanceOfBeingErnest Você quer dizer algo assim? BUILDING MATPLOTLIB matplotlib: yes [3.1.1] python: yes [3.8.0 (tags / v3.8.0: fa919fd, 14 de outubro de 2019, 19:21:23) [MSC v.1916 32 bits (Intel)]] plataforma: sim [win32] Acabei de instalar o Python há dois dias e tentei instalar o MatPlotLib hoje. Eu instalei o Numpy sem problemas.
user12239916

Respostas:

17

Você tem python 3.8, não python 3.7.
Mas não há rodas python 3.8 disponíveis para o matplotlib 3.1.1 no pypi. Portanto, é melhor remover completamente o python 3.8 e instalar o python 3.7.
Quando você o executa python -m pip install matplotlib, instala a versão compilada a partir das rodas, para que você não precise compilar nada ou ter o Microsoft Studio disponível.

ImportanceOfBeingErnest
fonte
Perfeito obrigado que resolveu. Eu acho que a comunidade Matplotlib ainda não foi atualizada para se ajustar ao Python 3.8, então?
user12239916
1
@ user12239916 Sim, o python 3.8 foi lançado apenas alguns dias atrás, enquanto o matplotlib 3.1.1 é de julho deste ano. A próxima versão do matplotlib deve, em princípio, ser compatível com python 3.8; mas, como sempre, ainda pode haver pequenos problemas. A menos que você realmente precise do python 3.8, aguarde meio ano até que tudo esteja resolvido.
ImportanceOfBeingErnest
Obrigado!! você me salvou. Eu não conseguia descobrir por que ele ficava quebrando lol
Jonathan Ishii
5

Depois de gastar muito tempo com o problema, isso me ajudou a resolvê-lo:

python -m pip install -U matplotlib==3.2.0rc1
Juvago
fonte
2

FYI: as instruções de instalação do site matplotlib têm algumas informações sobre a instalação a partir do código-fonte.

Para o Windows, declara a configuração incluir caminho e caminho do link:

set CL=/IC:\directory\containing\ft2build.h ...
set LINK=/LIBPATH:C:\directory\containing\freetype.lib ...
Tom Saenen
fonte
Você pode encontrar todos os arquivos de inclusão aqui: github.com/ubawurinna/freetype-windows-binaries
pgampe
2

Como solução alternativa, você pode instalar o matplotlib no Windows usando os 'Binários Não Oficiais do Windows para Pacotes de Extensão Python' com pip install <downloaded_filename>.

Testado em Python 3.8, Windows 10 e matplotlib-3.2

https://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib

Oryon
fonte
Excelente sugestão, ele faz o truque para mim também, e não há necessidade de brincar com outras configurações ou definições de caminho ou qualquer outra coisa. Bom trabalho!
mtjmohr