2014-07-16 30 views
17

Voglio usare PyYaml nel mio progetto pip, ma ho problemi ad usarlo come dipendenza. Principalmente il problema è che PyYaml in pip non è un'installazione multipiattaforma.Installa pyyaml ​​usando pip/Aggiungi PyYaml come dipendenza da pip

Come installare pyyaml ​​utilizzando pip in modo che funzioni. Nota, su una corrente fresca installazione di Ubuntu ottengo il seguente errore durante l'esecuzione pip install pyyaml

Installing collected packages: pyyaml 
    Running setup.py install for pyyaml 
    checking if libyaml is compilable 
    gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -I/usr/include/python3.2mu -c build/temp.linux-x86_64-3.2/check_libyaml.c -o build/temp.linux-x86_64-3.2/check_libyaml.o 
    build/temp.linux-x86_64-3.2/check_libyaml.c:2:18: fatal error: yaml.h: No such file or directory 
    compilation terminated. 

    libyaml is not found or a compiler error: forcing --without-libyaml 
    (if libyaml is installed correctly, you may need to 
    specify the option --include-dirs or uncomment and 
    modify the parameter include_dirs in setup.cfg) 

Successfully installed pyyaml 

Nota che l'errore dice "installato con successo", ma non lo è. Non posso import yaml

Non sto cercando risposte che dicano "usa apt-get" a causa della mia prima frase. Ho bisogno dell'installazione per essere multipiattaforma e lavorare come dipendenza da pip Non mi sto semplicemente chiedendo come installarlo correttamente.

Se questo non è possibile, c'è qualche libreria che posso usare in sostituzione?

+0

Provare a installare in virtualenv, '' virtualenv pyenv &&. pyenv/bin/activate && pip installa pyyaml ​​&& python -c 'import yaml''' funziona? – spinus

+0

@spinus funziona con python3 ma non con python2.7 –

+0

Per me funziona anche su python2.7. È piuttosto strano, non ho idea di cosa c'è che non va. So che hai scritto che è ubuntu fresca, ma è davvero così fresco? Non ci sono altre idee su cosa può essere sbagliato. – spinus

risposta

25

Avrete bisogno di alcuni pacchetti extra per costruirlo.

Prima di tutto è necessario disinstallare pyyaml, o si lamentano più tardi che è già installato

pip uninstall pyyaml 

quindi installare i seguenti pacchetti:

sudo apt-get install libyaml-dev libpython2.7-dev 

Infine installarlo nuovamente

pip install pyyaml 
+0

libpython è l'impostazione predefinita per python 2.7 su ubuntu –

+3

No, per Pyyaml ​​non è necessario libyaml-dev. Se è installato, pyyaml ​​può usarlo come implementazione più efficiente, ma non è necessario. Per me '' installa pyyaml'' pip senza cose esterne e con lo stesso errore funziona bene. – spinus

+0

Ho bisogno dell'installazione per funzionare come dipendenza da pip e multipiattaforma. Mi dispiace se questo non è stato chiaro, ho modificato la mia domanda. –