Jak zainstalować pakiet yaml dla Pythona?


347

Mam program w języku Python, który używa YAML. Próbowałem zainstalować go na nowym serwerze przy użyciu pip install yamli zwraca następujące informacje:

$ sudo pip install yaml
Downloading/unpacking yaml
  Could not find any downloads that satisfy the requirement yaml
No distributions at all found for yaml
Storing complete log in /home/pa/.pip/pip.log

Jak zainstalować pakiet yaml dla Pythona? Używam Python 2.7. (OS: Debian Wheezy)


dodaj informacje, z której platformy korzystasz. libyaml. pyyaml.org/wiki/LibYAML nie jest czystym pakietem Pythona, może powodować inną instalację.
Larry Cai

Odpowiedzi:


568

Możesz wypróbować funkcję wyszukiwania w pip,

$ pip search yaml

który szuka pakietów w PyPI z yaml w krótkim opisie. To ujawnia różne pakiety, w tym między innymi PyYaml, yamltools i PySyck (zauważ, że dokumenty PySyck zalecają używanie PyYaml, ponieważ syck jest nieaktualny). Teraz znasz konkretną nazwę pakietu, możesz ją zainstalować:

$ pip install pyyaml

Jeśli chcesz zainstalować python yaml w całym systemie Linux, można również użyć menedżera pakietów, jak aptitudei yum:

$ sudo apt-get install python-yaml
$ sudo yum install python-yaml

9
Nazwa pakietu PyYAML przynajmniej na Fedorze 21 i CentOS 7 po prostu PyYAMLnie jest python-yaml.
TNT

3
PyYAML implementuje starą specyfikację YAML 1.1 z 2004 r. (Syck nawet starsza specyfikacja 1.0). ruamel.yaml jest teraz nieaktualnym pakietem, który implementuje specyfikację YAML1.2
Anthon

Co więc, jeśli korzystam z systemu bez narzędzia pip ani menedżera pakietów?
FirefoxMetzger

1
@FirefoxMetzger możesz uzyskać python , uzyskać pip , zbudować LibYAML ze źródła , a na końcu zainstalować PyYAML . LibYAML nie jest ściśle wymagany, ponieważ PyYAML będzie działał z czystym
pytonem

wielkie dzięki, twoja odpowiedź całkowicie rozwiązała moje pytanie.
wilk


49

Aktualizacja: obecnie instalacja odbywa się za pomocą pip, ale libyaml jest nadal wymagany do zbudowania rozszerzenia C (na Macu):

brew install libyaml
python -m pip install pyyaml

Nieaktualna metoda :

W przypadku systemu MacOSX (indywidualnego) wydaje się, że działają:

brew install libyaml
sudo python -m easy_install pyyaml

6
To jedyna działająca odpowiedź na system OS X Yosemite, kiedy próbowałem.
Nima,

1
Działa to dla mnie na Yosemite, ale tylko z pythonem Brew w wersji 2.7.9, a nie w OS X Python 2.7.6.
David Moles

To była jedyna działająca odpowiedź dla OS X Lion, kiedy próbowałem. Dzięki wielkie! Myślałem, że to nie działa, ponieważ korzystałem z systemu operacyjnego 2011 w 2020 roku.
TheTechRobo36414519

20
pip install PyYAML

Jeśli libyaml nie zostanie znaleziony lub skompilowany, PyYAML może obejść się bez Mavericks.


W systemie Ubuntu 14.04 LTS dostałem błąd libyaml is not found or a compiler error: forcing --without-libyamlpodczas używania sudo pip install PyYAML. Co powinienem zrobić? Dzięki.
hengxin

1
Jednak powiedziałem Successfully installed PyYAML. Aby uzyskać pełne informacje, patrz pip-PyYAML . Dzięki jeszcze raz.
hengxin

14

Istnieją trzy pakiety obsługujące YAML. Syck ( pip install syck), który implementuje specyfikację YAML 1.0 od 2002 roku; PyYAML ( pip install pyyaml) zgodny ze specyfikacją YAML 1.1 z 2004 r .; i ruamel.yaml, który jest zgodny z najnowszą specyfikacją (YAML 1.2, od 2009 r.).

Możesz zainstalować pakiet kompatybilny z YAML 1.2 z pip install ruamel.yamllub jeśli korzystasz z nowoczesnej wersji Debian / Ubuntu (lub pochodnej) z:

sudo apt-get install python-ruamel.yaml

6

Systemy oparte na Debianie:

$ sudo aptitude install python-yaml

lub nowszy dla python3

$ sudo aptitude install python3-yaml


5

pobierze następujące polecenie pyyaml, które obejmuje równieżyaml

pip install pyYaml

3

„Powinien istnieć jeden - a najlepiej tylko jeden - oczywisty sposób”. Pozwólcie, że dodam jeszcze jeden. Ten bardziej przypomina „zainstaluj ze źródeł” dla Debiana / Ubuntu, z https://github.com/yaml/pyyaml

Zainstaluj libYAML i jego nagłówki:

sudo apt-get install libyaml-dev

Pobierz źródła pyyaml:

wget http://pyyaml.org/download/pyyaml/PyYAML-3.13.tar.gz

Zainstaluj ze źródeł, (nie zapomnij aktywować venv):

. your/env/bin/activate
tar xzf PyYAML-3.13.tar.gz
cd PyYAML-3.13.tar.gz
(env)$ python setup.py install
(env)$ python setup.py test 

To była jedyna metoda, która doprowadziła mnie do prawidłowej instalacji CLoaderów na MacOS. Wcześniej próbowałem, brew install libyaml & pip install pyyamlale python -c 'from yaml import CSafeLoader'ciągle mi się nie
udawało

1

Zamiast tego użyj strictyaml

Jeśli masz luksus samodzielnego tworzenia pliku yaml lub jeśli nie potrzebujesz żadnej z tych funkcji zwykłego yaml, zalecamy użycie strictyamlzamiast standardowego pyyamlpakietu.

Krótko mówiąc, domyślny yaml ma poważne wady w zakresie bezpieczeństwa, interfejsu i przewidywalności. strictyamljest podzbiorem specyfikacji yaml, który nie ma tych problemów (i jest lepiej udokumentowany).

Możesz przeczytać więcej o problemach ze zwykłym yaml tutaj

OPINIA: strictyaml powinna być domyślną implementacją yaml, a stara specyfikacja yaml powinna być przestarzała.


0

Zrobiłem to, instalując wersję programistyczną libyaml.

yum install libyaml-devel         #centos
apt-get install libyaml-dev       # ubuntu

Proszę załączyć wyjaśnienia, że ​​jest to ogólnosystemowa instalacja Pythona, architektura x86-64 tego titta, że ​​powinno być podobne polecenie dla APT ...
George Sovetov

1
@GeorgeSovetov Gotowe
Mayank Jaiswal

@MayankJaiswal Jak zainstalować wersję programistyczną dla Python 3?
Amir
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.