2014-09-04 34 views
49

Quando provo ad aggiornare il mio matplotlib usando pip, essa stampa:ubuntu 14.04, pip non può aggiornare matplotllib

Downloading/unpacking matplotlib from https://pypi.python.org/packages/source/m/matplotlib/matplotlib-1.4.0.tar.gz#md5=1daf7f2123d94745feac1a30b210940c 
    Downloading matplotlib-1.4.0.tar.gz (51.2MB): 51.2MB downloaded 
    Running setup.py (path:/tmp/pip_build_root/matplotlib/setup.py) egg_info for package matplotlib 
    ============================================================================ 
    Edit setup.cfg to change the build options 

    BUILDING MATPLOTLIB 
       matplotlib: yes [1.4.0] 
        python: yes [2.7.6 (default, Mar 22 2014, 22:59:38) [GCC 
          4.8.2]] 
        platform: yes [linux2] 

    REQUIRED DEPENDENCIES AND EXTENSIONS 
        numpy: yes [version 1.8.2] 
         six: yes [using six version 1.7.3] 
        dateutil: yes [using dateutil version 2.2] 
        tornado: yes [using tornado version 4.0.1] 
       pyparsing: yes [using pyparsing version 2.0.2] 
        pycxx: yes [Couldn't import. Using local copy.] 
        libagg: yes [pkg-config information for 'libagg' could not 
          be found. Using local copy.] 
    Traceback (most recent call last): 
     File "<string>", line 17, in <module> 
     File "/tmp/pip_build_root/matplotlib/setup.py", line 154, in <module> 
     result = package.check() 
     File "setupext.py", line 940, in check 
     if 'No such file or directory\ngrep:' in version: 
    TypeError: argument of type 'NoneType' is not iterable 
    Complete output from command python setup.py egg_info: 
    ============================================================================ 

Edit setup.cfg to change the build options 



BUILDING MATPLOTLIB 

      matplotlib: yes [1.4.0] 

       python: yes [2.7.6 (default, Mar 22 2014, 22:59:38) [GCC 

         4.8.2]] 

       platform: yes [linux2] 



REQUIRED DEPENDENCIES AND EXTENSIONS 

       numpy: yes [version 1.8.2] 

        six: yes [using six version 1.7.3] 

       dateutil: yes [using dateutil version 2.2] 

       tornado: yes [using tornado version 4.0.1] 

      pyparsing: yes [using pyparsing version 2.0.2] 

       pycxx: yes [Couldn't import. Using local copy.] 

       libagg: yes [pkg-config information for 'libagg' could not 

         be found. Using local copy.] 

Traceback (most recent call last): 

    File "<string>", line 17, in <module> 

    File "/tmp/pip_build_root/matplotlib/setup.py", line 154, in <module> 

    result = package.check() 

    File "setupext.py", line 940, in check 

    if 'No such file or directory\ngrep:' in version: 

TypeError: argument of type 'NoneType' is not iterable 

---------------------------------------- 
Cleaning up... 
Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_root/matplotlib 
Storing debug log for failure in /home/username/.pip/pip.log 

Nella parte finale del log si dice:

Exception information: 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/pip-1.5.6-py2.7.egg/pip/basecommand.py", line 122, in main 
    status = self.run(options, args) 
    File "/usr/local/lib/python2.7/dist-packages/pip-1.5.6-py2.7.egg/pip/commands/install.py", line 278, in run 
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle) 
    File "/usr/local/lib/python2.7/dist-packages/pip-1.5.6-py2.7.egg/pip/req.py", line 1229, in prepare_files 
    req_to_install.run_egg_info() 
    File "/usr/local/lib/python2.7/dist-packages/pip-1.5.6-py2.7.egg/pip/req.py", line 325, in run_egg_info 
    command_desc='python setup.py egg_info') 
    File "/usr/local/lib/python2.7/dist-packages/pip-1.5.6-py2.7.egg/pip/util.py", line 697, in call_subprocess 
    % (command_desc, proc.returncode, cwd)) 
InstallationError: Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_root/matplotlib 

perché fallì ? Mille grazie!

+0

Potrebbe essere utile se si indicaci quale sistema operativo stai utilizzando e il comando pip esatto che hai emesso. – Adobe

+0

L'ho detto nel titolo. Ubuntu 14.04. Ma, comunque, la risposta qui sotto mi ha aiutato. Grazie mille! :-) – astroboylrx

risposta

71

Questo è un bug noto che è stato risolto (https://github.com/matplotlib/matplotlib/pull/3414) sul master.

Il bug è nella gestione della ricerca di un'installazione freetype. Se installi il pacchetto Linux freetype-dev, eviterete questo bug e sarete in grado di compilare matplotlib.

sudo apt-get install libfreetype6-dev 
+15

Conferma l'installazione di libfreetype6-dev come soluzione alternativa – Vanuan

+0

È 'freetype6-dev' (e forse' libxft-dev' per il server Ubuntu 14) installato con 'apt-get build-dep python-matplotlib'? – drevicko

+1

Posso confermare che questo vale anche per Ubuntu 16.04 e la soluzione indicata funziona. – h7r

68

Su Ubuntu 14 server, è necessario installare anche libXft-dev

sudo apt-get install libfreetype6-dev libxft-dev 
+2

Sembra molto difficile capire cosa deve essere fatto. Tuttavia, sembra su Ubuntu 14 sudo apt-get install libfreetype6-dev libxft-dev seguito da sudo pip install matplotlib FUNZIONA !! – Somum

+0

Questo ha funzionato per me. Ta! – PerceptualRobotics

+0

Questo è necessario anche per Bash su Windows 10. – Ninjakannon

11

ho avuto gli stessi problemi cercando di installare matplotlib su Python 3 utilizzando pip3, e sembra che questo problema è correlato a un'installazione bare-bones di Python 3, e facendo un:

sudo apt-get build-dep matplotlib 

seguito da

sudo pip3 install matplotlib 

è probabilmente una soluzione migliore rispetto all'installazione selettiva solo delle librerie relative a matplotlib.

+1

Funziona bene in Ubunu14.04! –

+0

In Ubuntu 15.04, questo vuole installare 419 pacchetti per un totale di 1 GB. – knite

+0

@knite Questo è un compromesso tra la gestione delle dipendenze manuali e la convenienza. – tchakravarty

3

Dal mac non ha apt-get te, su OSX potrebbe essere necessario fare:

brew install freetype 

allora si può lanciare:

pip install matplotlib 
+1

Ho anche dovuto installare 'pkg-config' con' brew install pkg-config' e poi ha funzionato. – user3148185

1

trovato questa pagina mentre guardando risposta per fedora 24.

soluzione RPM è:

dnf install freetype-devel

0

Stavo provando troppo ad aggiornare direttamente usando sudo pip ma le modifiche non sono state salvate in ultimo. Così i primo uso cmd aggiornamento nel terminale:

sudo apt-get update 

poi ho usato sudo installare:

sudo apt-get install libffi-dev 

finalmente la sua installazione facendo questo metodo.

+3

Anche se questo snippet di codice può risolvere la domanda, [compresa una spiegazione] (// meta.stackexchange.com/questions/114762/explaining-entely-code-based-answers) aiuta davvero a migliorare la qualità del tuo post. Ricorda che stai rispondendo alla domanda per i lettori in futuro, e queste persone potrebbero non conoscere le ragioni del tuo suggerimento sul codice. Cerca anche di non affollare il tuo codice con commenti esplicativi, questo riduce la leggibilità sia del codice che delle spiegazioni! – kayess

+0

ok lo prenderò come nota per il futuro. – Rochan

+0

Ciao kayess ... Ho aggiornato il post. Meglio ora? – Rochan

1

Se si sta eseguendo il server Ubuntu 14.04 u dovrebbe aggiungere questo tipo di carattere dipendenza

sudo apt-get install libxft-dev 

Source

0

Per quelli su Fedora 25 colpire questa discussione, avevo bisogno di questi due pacchetti per farlo funzionare:

sudo dnf install freetype-devel gcc-c++ 
Problemi correlati