ฉันจะติดตั้งแพ็คเกจ yaml สำหรับ Python ได้อย่างไร


347

ฉันมีโปรแกรม Python ที่ใช้ YAML ฉันพยายามติดตั้งบนเซิร์ฟเวอร์ใหม่โดยใช้pip install yamlและคืนค่าดังต่อไปนี้

$ 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

ฉันจะติดตั้งแพ็คเกจ yaml สำหรับ Python ได้อย่างไร ฉันกำลังใช้ Python 2.7 (ระบบปฏิบัติการ: Debian Wheezy)


เพิ่มข้อมูลเกี่ยวกับแพลตฟอร์มที่คุณใช้ libyaml pyyaml.org/wiki/LibYAMLไม่ใช่แพ็คเกจงูหลามแท้ๆมันอาจทำให้การติดตั้งแตกต่างกัน
Larry Cai

คำตอบ:


568

คุณสามารถลองใช้คุณสมบัติการค้นหาใน pip

$ pip search yaml

ซึ่งค้นหาแพ็คเกจใน PyPI ด้วย yaml ในคำอธิบายสั้น ๆ ที่เปิดเผยแพ็คเกจต่าง ๆ รวมถึง PyYaml, yamltools และ PySyck รวมถึงคนอื่น ๆ (โปรดทราบว่าเอกสาร PySyckแนะนำให้ใช้ PyYaml เนื่องจาก syck ล้าสมัย) ตอนนี้คุณรู้ชื่อแพ็คเกจที่ต้องการแล้วคุณสามารถติดตั้งได้:

$ pip install pyyaml

หากคุณต้องการติดตั้ง python yaml ทั้งระบบใน linux คุณสามารถใช้ตัวจัดการแพ็คเกจเช่นaptitudeหรือyum:

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

9
ชื่อของแพ็คเกจ PyYAML อย่างน้อยใน Fedora 21 และ CentOS 7 นั้นPyYAMLไม่ได้เป็นเช่นpython-yamlนั้น
TNT

3
PyYAML ใช้สเปค YAML 1.1 เก่าจากปี 2004 (Syck สเป็คเก่ากว่า 1.0) ruamel.yaml เป็นแพ็คเกจที่ไม่ล้าสมัยซึ่งใช้มาตรฐาน YAML1.2
Anthon

แล้วถ้าฉันใช้ระบบที่ไม่มี pip หรือตัวจัดการแพ็คเกจล่ะ?
FirefoxMetzger

1
@FirefoxMetzger คุณสามารถได้รับหลาม , รับ pip , สร้าง LibYAML จากแหล่งและในที่สุดก็ติดตั้ง PyYAML LibYAML ไม่ต้องการอย่างเคร่งครัดเนื่องจาก PyYAML จะทำงานกับหลามบริสุทธิ์ (แม้ว่าช้ากว่า)
tutuDajuju

ขอบคุณมากคำตอบของคุณได้แก้ไขคำถามของฉันทั้งหมด
wolfog


49

อัปเดต:ทุกวันนี้การติดตั้งทำได้ด้วย pip แต่ libyaml ยังต้องการสร้างส่วนขยาย C (บน mac):

brew install libyaml
python -m pip install pyyaml

วิธีการที่ล้าสมัย :

สำหรับ MacOSX (mavericks) ดูเหมือนว่าต่อไปนี้จะใช้งานได้:

brew install libyaml
sudo python -m easy_install pyyaml

6
นี่เป็นคำตอบเดียวที่ใช้งานได้สำหรับ OS X Yosemite เมื่อฉันลอง
Nima

1
สิ่งนี้ใช้ได้กับฉันใน Yosemite แต่เฉพาะกับ python 2.7.9 ของ brew เท่านั้นไม่ใช่ OS X python 2.7.6
David Moles

นี่เป็นคำตอบเดียวที่ใช้ได้กับ OS X Lion เมื่อฉันลอง ขอบคุณมาก! ฉันคิดว่ามันไม่ทำงานเพราะฉันใช้ระบบปฏิบัติการ 2011 ในปี 2020
TheTechRobo36414519

20
pip install PyYAML

หากไม่พบ libyaml หรือรวบรวม PyYAML สามารถทำได้โดยไม่ใช้มันใน Mavericks


บน Ubuntu 14.04 LTS ผมได้ข้อผิดพลาดเมื่อใช้libyaml is not found or a compiler error: forcing --without-libyaml sudo pip install PyYAMLฉันควรทำอย่างไรดี? ขอบคุณ
hengxin

1
Successfully installed PyYAMLแต่ผมบอกว่า ดูpip-PyYAMLสำหรับข้อมูลที่สมบูรณ์ ขอบคุณอีกครั้ง.
hengxin

14

มีแพ็คเกจที่สามารถใช้งานได้สาม Yaml Syck ( pip install syck) ซึ่งใช้งานข้อมูลจำเพาะ YAML 1.0 ตั้งแต่ปี 2002 PyYAML ( pip install pyyaml) ซึ่งเป็นไปตามข้อกำหนด YAML 1.1 จากปี 2004 และruamel.yamlซึ่งเป็นไปตามข้อกำหนดล่าสุด (YAML 1.2, จาก 2009)

คุณสามารถติดตั้งแพ็คเกจที่เข้ากันได้กับ YAML 1.2 ด้วยpip install ruamel.yamlหรือถ้าคุณใช้ Debian / Ubuntu (หรืออนุพันธ์) เวอร์ชันทันสมัยด้วย:

sudo apt-get install python-ruamel.yaml

6

ระบบที่ใช้เดเบียน:

$ sudo aptitude install python-yaml

หรือใหม่กว่าสำหรับ python3

$ sudo aptitude install python3-yaml



3

"ควรมีอย่างใดอย่างหนึ่ง - และดีกว่าเพียงหนึ่ง - วิธีที่ชัดเจนที่จะทำ" ขอผมเพิ่มอีกอันหน่อย อันนี้เหมือน "ติดตั้งจากแหล่ง" สำหรับ Debian / Ubuntu จากhttps://github.com/yaml/pyyaml

ติดตั้ง libYAML และส่วนหัว:

sudo apt-get install libyaml-dev

ดาวน์โหลดแหล่ง pyyaml:

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

ติดตั้งจากแหล่งที่มา (อย่าลืมเปิดใช้งาน 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 

1
นี่เป็นวิธีเดียวที่ทำให้ฉันติดตั้ง CLoaders บน MacOS อย่างถูกต้อง ก่อนหน้านี้ฉันพยายามbrew install libyaml & pip install pyyamlแต่python -c 'from yaml import CSafeLoader'ล้มเหลว
Luis Meraz

1

ใช้strictyamlแทน

หากคุณมีความหรูหราในการสร้างไฟล์ yaml ด้วยตัวคุณเองหรือหากคุณไม่ต้องการฟีเจอร์เหล่านี้ของ yaml ปกติฉันแนะนำให้ใช้strictyamlแทนpyyamlแพ็คเกจมาตรฐาน

ในระยะสั้น yaml เริ่มต้นมีข้อบกพร่องร้ายแรงบางประการในแง่ของความปลอดภัยส่วนต่อประสานและการคาดการณ์ strictyamlเป็นเซตย่อยของข้อมูลจำเพาะ yaml ที่ไม่มีปัญหาเหล่านั้น (และจัดทำเป็นเอกสารที่ดีกว่า)

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับปัญหาที่เกิดขึ้นกับมันเทศปกติที่นี่

ความคิดเห็น: strictyamlควรเป็นการใช้งานเริ่มต้นของ yaml และข้อมูลจำเพาะ yaml เก่าควรล้าสมัย


0

สำหรับฉันแล้วการติดตั้งเวอร์ชันพัฒนาของ libyaml ทำได้

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

โปรดรวมคำอธิบายว่าเป็นการติดตั้ง Python ทั่วทั้งระบบ, สถาปัตยกรรม x86-64 ของ tha tit ว่าควรมีคำสั่งที่คล้ายกันสำหรับ APT ...
George Sovetov

1
@GeorgeSovetov เสร็จสิ้น
Mayank Jaiswal

@MayankJaiswal คุณจะติดตั้งเวอร์ชันการพัฒนาสำหรับ Python 3 ได้อย่างไร
อาเมียร์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.