Python และ IPython แตกต่างกันอย่างไร?


220

ว่าอะไรคือความแตกต่างระหว่างงูหลามและIPython ?

ถ้าฉันเขียนโค้ดใน Python มันจะทำงานใน IPython เหมือนเดิมหรือจำเป็นต้องแก้ไขหรือไม่?

ฉันรู้ว่า IPython ควรจะเป็นเชลล์แบบโต้ตอบสำหรับ Python แต่นั่นคือทั้งหมดหรือไม่ หรือมีภาษาที่เรียกว่า IPython ถ้าฉันเขียนบางอย่างภายใต้ IPython มันจะทำงานใน Python และในทางกลับกัน หากมีความแตกต่างฉันจะรู้ได้อย่างไรว่าพวกเขาเป็นอย่างไร แพคเกจทั้งหมดที่ใช้โดย Python จะทำงานได้เหมือนใน IPython หรือไม่?

คำตอบ:


153

ipython เป็นเปลือกโต้ตอบที่สร้างขึ้นด้วยหลาม

จากเว็บไซต์โครงการ:

IPython มีชุดเครื่องมือที่หลากหลายเพื่อช่วยให้คุณใช้ Python ได้อย่างเต็มประสิทธิภาพด้วย:

  • เปลือกงูหลามอันทรงพลัง (เทอร์มินัลและแบบ Qt)
  • สมุดบันทึกบนเว็บที่มีคุณสมบัติหลักเหมือนกัน แต่รองรับรหัสข้อความการแสดงออกทางคณิตศาสตร์พล็อตแบบอินไลน์และสื่อสมบูรณ์อื่น ๆ
  • รองรับการสร้างภาพข้อมูลเชิงโต้ตอบและการใช้ชุดเครื่องมือ GUI
  • ล่ามที่ยืดหยุ่นและฝังได้เพื่อโหลดเข้าสู่โครงการของคุณเอง
  • เครื่องมือประสิทธิภาพสูงที่ใช้งานง่ายสำหรับการคำนวณแบบขนาน

โปรดทราบว่า 2 บรรทัดแรกบอกคุณว่ามันช่วยให้คุณใช้ Python ได้อย่างเต็มประสิทธิภาพ ดังนั้นคุณไม่จำเป็นต้องแก้ไขโค้ดของคุณเชลล์ IPython จะรันโค้ดไพ ธ อนของคุณเช่นเดียวกับที่เชลล์งูหลามธรรมดาทำได้โดยมีคุณสมบัติเพิ่มเติมเท่านั้น

ฉันขอแนะนำให้อ่านบทช่วยสอน IPythonเพื่อให้เข้าใจถึงคุณลักษณะที่คุณได้รับเมื่อใช้ IPython


8
Thus, you don't need to alter your code, the IPython shell runs your python code just like the normal python shell doesขอบคุณ นั่นคือทั้งหมดที่ฉันต้องการรู้
Asdfsdjlka Asdfsdjlka

คุณสามารถให้ความเห็นเกี่ยวกับความเร็วในการทำงานของ ipython กับ python ได้ไหม? ฉันหมายถึง ipython แท้ไม่ใช่โน๊ตบุ๊ก ipython ที่เกี่ยวข้องกับเบราว์เซอร์
Jason

2
@ Jason: มันเป็นวงการประเมินผลที่แน่นอนเหมือนกัน อาจมีค่าโสหุ้ยในเลเยอร์การนำเสนอ (การแยกคำสั่ง ipython การพิมพ์เอาต์พุตนิพจน์) แต่นั่นเป็นค่าใช้จ่ายคงที่ทั้งหมด แตกต่างกันเล็กน้อยมาก
Martijn Pieters

19

IPython นั้นเป็น Python เชลล์ "แนะนำ" ซึ่งมีคุณสมบัติพิเศษ ไม่มีภาษาที่เรียกว่า IPython


IPython เป็นเพียง REPL หรือไม่?
นาย Suryaa Jha

@ Mr.SuryaaJha มันเป็น REPL แต่ก็มีเพียงไพ ธ อน REPL มาตรฐาน (สิ่งที่คุณจะได้รับเมื่อคุณพิมพ์pythonในเชลล์)
BallpointBen

16

แม้หลังจากดูหัวข้อนี้แล้วฉันก็คิดว่า ipython เป็นคำพ้องความหมายของ python shell หรือกล่าวอีกนัยหนึ่งว่าการพิมพ์ python ที่บรรทัดคำสั่งใส่ไว้ในโหมด ipython

ในความเป็นจริงแล้วตามที่อ้างถึงข้างต้นเชลล์แบบโต้ตอบที่ยอดเยี่ยมมาก (โปรแกรมบรรทัดคำสั่ง) ที่สามารถติดตั้งได้จากiPython.orgหรือเพียงแค่เรียกใช้

pip install ipython

หรือกว้างขวางมากขึ้น:

pip install ipython[notebook]

จากบรรทัดคำสั่ง


1
จุดดี @Roadowl ฉันเดาว่า "เปลือกโต้ตอบ" เป็นบิตซ้ำซ้อนไม่ได้
MikeiLL

@Roadowl: (อีกหนึ่งปีต่อมา แต่ก็ยัง ... ) แล้วเชลล์ที่ใช้งานสคริปต์ในลักษณะที่ไม่โต้ตอบกันล่ะ? อาจเป็นตัวอย่างง่ายๆ: $ sh -c 'foobar=3.14159'... หรือบางทีฉันอาจเข้าใจผิดปี
Cbhihe

12

IPythonเป็นล่าม Python แบบโต้ตอบที่ทรงพลังซึ่งมีการโต้ตอบมากกว่าเมื่อเปรียบเทียบกับล่ามมาตรฐาน

ในการรับล่าม Python มาตรฐานคุณพิมพ์pythonและคุณจะได้รับ>>>พรอมต์จากที่ที่คุณสามารถทำงานได้

ในการรับล่าม IPython คุณต้องติดตั้งก่อน pip install ipython. คุณพิมพ์ipythonและคุณจะได้รับIn [1]:พร้อมท์และคุณจะได้In [2]:รับคำสั่งต่อไป คุณสามารถโทรhistoryเพื่อตรวจสอบรายการคำสั่งก่อนหน้าและเขียน%recall 1เพื่อเรียกคืนคำสั่ง

!ping www.google.comแม้คุณจะในหลามคุณสามารถเรียกใช้คำสั่งเชลล์โดยตรงเช่น ดูเหมือนว่าโน้ตบุ๊คจูปีเตอร์บรรทัดคำสั่งถ้าคุณเคยใช้มาก่อน

คุณสามารถใช้[Tab]เติมข้อความอัตโนมัติตามที่แสดงในภาพ ป้อนคำอธิบายรูปภาพที่นี่


6

มีความแตกต่างระหว่าง Python และ IPython เพียงเล็กน้อยเท่านั้น แต่เป็นเพียงการตีความของไวยากรณ์เพียงเล็กน้อยเช่น @Ryan Chase ที่กล่าวถึงเพียงเล็กน้อย

ส่วนที่ดีที่สุดของ IPython คือ IPython notebook คุณสามารถใส่งานทั้งหมดของคุณลงในสมุดบันทึกเช่นสคริปต์ไฟล์ภาพ ฯลฯ แต่ด้วย Python พื้นฐานคุณสามารถสร้างสคริปต์ในไฟล์และดำเนินการได้เท่านั้น

ในตอนแรกคุณต้องเข้าใจว่า IPython ได้รับการพัฒนาโดยมีเจตนาเพื่อสนับสนุนสื่อสมบูรณ์และสคริปต์ Python ในคอนเทนเนอร์รวมเดียว


6

เมื่อเทียบกับ Python IPython (สร้างโดยเฟอร์นันโดเปเรซในปี 2544) สามารถทำทุกสิ่งที่หลามสามารถทำได้ Ipython มีคุณสมบัติพิเศษเช่นการเติมแท็บการทดสอบการดีบักการเรียกของระบบและคุณสมบัติอื่น ๆ อีกมากมาย คุณสามารถคิดว่า IPython เป็นอินเทอร์เฟซที่ทรงพลังสำหรับภาษา Python

คุณสามารถติดตั้งIpythonโดยใช้ pip -pip install ipython

คุณสามารถเรียกใช้Ipythonโดยพิมพ์ipythonในหน้าต่างเทอร์มินัลของคุณ


2

จากประสบการณ์ของฉันฉันพบว่าบางคำสั่งที่ทำงานใน IPython ไม่ทำงานใน Python ฐาน ตัวอย่างเช่นpwdและlsไม่ทำงานคนเดียวใน Python ฐาน แต่พวกเขาจะทำงานถ้าขึ้นต้นด้วย%เช่นและ%pwd%ls

นอกจากนี้ใน IPython คุณสามารถเรียกใช้คำสั่ง cd ที่ชอบ: cd C:\Users\... นี้ดูเหมือนจะไม่ทำงานในฐานหลามแม้ในขณะที่ขึ้นต้นด้วย%อย่างไรก็ตาม


3
import os; os.system('pwd')เป็นวิธีที่ฉันทำใน Python
ทุก

2
%คำสั่งทั้งหมดเป็นคำสั่ง ipython และไม่สามารถใช้งานได้ในเซสชันการโต้ตอบ Python ปกติ ซึ่งรวมถึงและ%pwd คำนำหน้าเป็นตัวเลือกและจำเป็นต้องใช้เฉพาะเมื่อมีข้อขัดแย้งกับงูใหญ่ระดับโลกในเซสชั่นปัจจุบันของคุณ %ls%
Martijn Pieters
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.