Bagaimana cara saya menginstal paket yaml untuk Python?


347

Saya memiliki program Python yang menggunakan YAML. Saya mencoba menginstalnya di server baru menggunakan pip install yamldan mengembalikan yang berikut:

$ 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

Bagaimana cara saya menginstal paket yaml untuk Python? Saya menjalankan Python 2.7. (OS: Debian Wheezy)


tambahkan informasi pada platform apa yang Anda gunakan. libyaml. pyyaml.org/wiki/LibYAML bukan paket python murni, ini dapat menyebabkan instalasi berbeda.
Larry Cai

Jawaban:


568

Anda dapat mencoba fitur pencarian di pip,

$ pip search yaml

yang mencari paket di PyPI dengan yaml dalam deskripsi singkat. Itu mengungkapkan berbagai paket, termasuk PyYaml, yamltools, dan PySyck, antara lain (Perhatikan bahwa PySyck merekomendasikan penggunaan PyYaml, karena syck sudah ketinggalan zaman). Sekarang Anda tahu nama paket tertentu, Anda dapat menginstalnya:

$ pip install pyyaml

Jika Anda ingin menginstal sistem python yaml di linux, Anda juga dapat menggunakan manajer paket, seperti aptitudeatau yum:

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

9
Nama paket PyYAML setidaknya pada Fedora 21 dan CentOS 7 PyYAMLtidak python-yaml.
TNT

3
PyYAML mengimplementasikan spec YAML 1.1 lama dari 2004 (Syck spec 1.0 yang bahkan lebih tua). ruamel.yaml sekarang adalah paket non-out-of-date yang mengimplementasikan spesifikasi YAML1.2
Anthon

Jadi bagaimana jika saya menggunakan sistem tanpa pip atau manajer paket?
FirefoxMetzger

1
@ FirefoxMetzger Anda bisa mendapatkan python , mendapatkan pip , membangun LibYAML dari sumber , dan akhirnya menginstal PyYAML . LibYAML tidak sepenuhnya diperlukan karena PyYAML akan bekerja dengan python murni (walaupun lebih lambat)
tutuDajuju

terima kasih banyak, jawaban Anda telah menyelesaikan pertanyaan saya sepenuhnya.
wolfog


49

Pembaruan: Instalasi saat ini dilakukan dengan pip, tetapi libyaml masih diperlukan untuk membangun ekstensi C (di mac):

brew install libyaml
python -m pip install pyyaml

Metode usang :

Untuk MacOSX (maverick), yang berikut ini tampaknya berfungsi:

brew install libyaml
sudo python -m easy_install pyyaml

6
Ini adalah satu-satunya jawaban yang berfungsi untuk OS X Yosemite ketika saya mencoba.
Nima

1
Ini bekerja untuk saya di Yosemite, tetapi hanya dengan python brew's 2.7.9, bukan OS X python 2.7.6.
David Moles

Ini adalah satu-satunya jawaban yang berfungsi untuk OS X Lion ketika saya mencoba. Terima kasih banyak! Saya pikir itu tidak berfungsi karena saya menggunakan sistem operasi 2011 pada tahun 2020.
TheTechRobo36414519

20
pip install PyYAML

Jika libyaml tidak ditemukan atau dikompilasi PyYAML dapat melakukannya tanpa itu di Mavericks.


Di Ubuntu 14.04 LTS, saya mendapatkan kesalahan libyaml is not found or a compiler error: forcing --without-libyamlsaat menggunakan sudo pip install PyYAML. Apa yang harus saya lakukan? Terima kasih.
hengxin

1
Namun, kataku Successfully installed PyYAML. Lihat pip-PyYAML untuk informasi lengkap. Terima kasih lagi.
hengxin

14

Ada tiga paket yang mampu YAML. Syck ( pip install syck) yang mengimplementasikan spesifikasi YAML 1.0 dari tahun 2002; PyYAML ( pip install pyyaml) yang mengikuti spesifikasi YAML 1.1 dari 2004; dan ruamel.yaml yang mengikuti spesifikasi terbaru (YAML 1.2, dari 2009).

Anda dapat menginstal paket YAML 1.2 yang kompatibel dengan pip install ruamel.yamlatau jika Anda menjalankan versi modern Debian / Ubuntu (atau turunannya) dengan:

sudo apt-get install python-ruamel.yaml

6

Sistem berbasis Debian:

$ sudo aptitude install python-yaml

atau yang lebih baru untuk python3

$ sudo aptitude install python3-yaml


5

perintah berikut akan diunduh pyyaml, yang juga termasukyaml

pip install pyYaml

3

"Seharusnya ada satu - dan lebih disukai hanya satu - cara yang jelas untuk melakukannya." Jadi izinkan saya menambahkan yang lain. Yang ini lebih mirip "instal dari sumber" untuk Debian / Ubuntu, dari https://github.com/yaml/pyyaml

Instal libYAML dan tajuknya:

sudo apt-get install libyaml-dev

Unduh sumber pyyaml:

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

Instal dari sumber, (jangan lupa untuk mengaktifkan venv Anda):

. 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 

Ini adalah satu-satunya metode yang membuat saya menginstal CLoaders dengan benar di MacOS. Saya sebelumnya mencoba brew install libyaml & pip install pyyamltetapi, python -c 'from yaml import CSafeLoader'terus gagal
Luis Meraz

1

Gunakan strictyaml sebagai gantinya

Jika Anda memiliki kemewahan membuat sendiri file yaml, atau jika Anda tidak memerlukan fitur-fitur ini dari yaml biasa, saya sarankan menggunakan strictyamldaripada pyyamlpaket standar .

Singkatnya, yaml default memiliki beberapa kelemahan serius dalam hal keamanan, antarmuka, dan prediktabilitas. strictyamladalah himpunan bagian dari spesifikasi yaml yang tidak memiliki masalah tersebut (dan lebih baik didokumentasikan).

Anda dapat membaca lebih lanjut tentang masalah dengan yaml reguler di sini

PENDAPAT: strictyaml harus menjadi implementasi default yaml dan spec yaml lama harus usang.


0

Bagi saya, menginstal versi pengembangan libyaml berhasil.

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

Tolong, sertakan penjelasan bahwa itu adalah instalasi Python seluruh sistem, arsitektur x86-64 tit, bahwa harus ada perintah serupa untuk APT ...
George Sovetov

1
@GeorgeSovetov Done
Mayank Jaiswal

@MayankJaiswal Bagaimana Anda menginstal versi pengembangan untuk Python 3?
Amir
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.