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)

Harperville
sumber
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
Bonlenfum
sumber
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
91

pip install pyyaml

Jika Anda tidak memiliki pip, jalankan easy_install pipuntuk menginstal pip, yang merupakan pemasang paket masuk - Mengapa menggunakan pip melalui easy_install? . Jika Anda memilih untuk tetap menggunakan easy_install, makaeasy_install pyyaml

Harperville
sumber
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
tutuDajuju
sumber
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.

bbaassssiiee
sumber
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
Anthon
sumber
6

Sistem berbasis Debian:

$ sudo aptitude install python-yaml

atau yang lebih baru untuk python3

$ sudo aptitude install python3-yaml

hbadger
sumber
5

perintah berikut akan diunduh pyyaml, yang juga termasukyaml

pip install pyYaml
Ankit Shukla
sumber
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 
Sergey Belash
sumber
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.

Connor
sumber
0

Bagi saya, menginstal versi pengembangan libyaml berhasil.

yum install libyaml-devel         #centos
apt-get install libyaml-dev       # ubuntu
Mayank Jaiswal
sumber
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