2014-07-16 26 views
17

Chcę użyć PyYaml w moim projekcie pip, ale mam problem z wykorzystaniem go jako zależności. Głównie problem polega na tym, że PyYaml in pip nie jest instalacją na wielu platformach.Zainstaluj pyyaml ​​za pomocą pip/Dodaj PyYaml jako zależność pip

Jak zainstalować pyyaml ​​za pomocą pip, aby działał. Zauważ, że na obecnym świeżego Ubuntu zainstalować pojawia się następujący błąd podczas uruchamiania 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 

Należy zauważyć, że błąd mówi „pomyślnie zainstalowany”, ale tak nie jest. Nie mogę import yaml

Nie szukam odpowiedzi, które mówią "użyj apt-get" z powodu mojego pierwszego zdania. Potrzebuję instalacji do pracy na różnych platformach i pracuję jako zależność PIP Nie zastanawiam się, jak zainstalować ją poprawnie.

Jeśli nie jest to możliwe, czy istnieje jakaś biblioteka, której można użyć w zastępstwie?

+0

Spróbuj zainstalować w virtualenv, '' virtualenv pyenv &&. pyenv/bin/activate && pip install pyyaml ​​&& python -c 'import yaml''' czy to działa? – spinus

+0

@spinus działa z python3, ale nie python2.7 –

+0

Dla mnie działa również na python2.7. Całkiem dziwne, nie mam pojęcia, co jest nie tak. Wiem, że napisałeś, że to świeże ubuntu, ale czy to naprawdę takie świeże? Żadnych innych pomysłów, co może być nie tak. – spinus

Odpowiedz

25

Będziesz potrzebował dodatkowych pakietów do jego zbudowania.

Przede wszystkim trzeba odinstalować pyyaml, czy będzie to skarżą się później, że jest on już zainstalowany

pip uninstall pyyaml 

Następnie zainstalować następujące pakiety:

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

końcu zainstalować go ponownie

pip install pyyaml 
+0

libpython jest domyślny dla Pythona 2.7 na ubuntu –

+3

Nie, libyaml-dev nie jest wymagany do pracy pyyaml. Jeśli jest zainstalowany, pyyaml ​​może go użyć jako bardziej wydajną implementację, ale nie jest to wymagane. Dla mnie '' pip install pyyaml'' bez zewnętrznych rzeczy i z tym samym błędem działa dobrze. – spinus

+0

Potrzebuję instalacji, aby działać jako zależność pip i między platformami. Przepraszam, jeśli to nie było jasne, zredagowałem moje pytanie. –

Powiązane problemy