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.