Sự khác biệt giữa Python và IPython là gì?


220

Chính xác thì sự khác biệt giữa Python và IPython là gì?

Nếu tôi viết mã bằng Python, nó sẽ chạy trong IPython như vậy hay nó cần phải được sửa đổi?

Tôi biết IPython được coi là một vỏ tương tác cho Python, nhưng đó có phải là tất cả không? Hoặc có một ngôn ngữ gọi là IPython? Nếu tôi viết một cái gì đó dưới IPython, nó sẽ chạy bằng Python và ngược lại? Nếu có sự khác biệt, làm sao tôi biết chúng là gì? Tất cả các gói được sử dụng bởi Python có hoạt động như trong IPython không?

Câu trả lời:


153

ipython là một vỏ tương tác được xây dựng với python.

Từ trang web của dự án:

IPython cung cấp bộ công cụ phong phú để giúp bạn tận dụng tối đa việc sử dụng Python, với:

  • Shell Python mạnh mẽ (thiết bị đầu cuối và dựa trên Qt).
  • Một máy tính xách tay dựa trên web có cùng tính năng cốt lõi nhưng hỗ trợ mã, văn bản, biểu thức toán học, cốt truyện nội tuyến và các phương tiện phong phú khác.
  • Hỗ trợ trực quan hóa dữ liệu tương tác và sử dụng bộ công cụ GUI.
  • Thông dịch viên linh hoạt, có thể nhúng để tải vào các dự án của riêng bạn.
  • Dễ sử dụng, các công cụ hiệu suất cao cho tính toán song song.

Lưu ý rằng 2 dòng đầu tiên cho bạn biết nó giúp bạn tận dụng tối đa việc sử dụng Python. Do đó, bạn không cần phải thay đổi mã của mình, vỏ IPython chạy mã python của bạn giống như vỏ python bình thường, chỉ với nhiều tính năng hơn.

Tôi khuyên bạn nên đọc hướng dẫn IPython để hiểu được những tính năng bạn có được khi sử dụng IPython.


8
Thus, you don't need to alter your code, the IPython shell runs your python code just like the normal python shell doesCảm ơn. Đó là tất cả những gì tôi cần biết.
Asdfsdjlka Asdfsdjlka

Bạn có thể cho một số ý kiến ​​về tốc độ thực hiện của ipython vs python? Ý tôi là ipython thuần, không phải ipython có liên quan đến trình duyệt.
Jason

2
@Jason: đó là vòng đánh giá chính xác. Có thể có một số chi phí trong lớp trình bày (phân tích cú pháp cho các lệnh ipython, in đẹp đầu ra biểu thức), nhưng đó là tất cả chi phí không đổi. Về cơ bản, rất, rất ít sự khác biệt.
Martijn Pieters

19

IPython về cơ bản là trình vỏ Python "được đề xuất", cung cấp các tính năng bổ sung. Không có ngôn ngữ gọi là IPython.


IPython chỉ là REPL ??
Ông Suryaa Jha

@ Mr.SuryaaJha Đó là REPL, nhưng cũng chỉ có REPL python tiêu chuẩn (những gì bạn nhận được khi gõ pythonvào shell).
BallpointBen

16

Ngay cả sau khi xem chủ đề này, tôi đã nghĩ rằng ipython là một từ đồng nghĩa với vỏ python, nói cách khác là gõ python ở dòng lệnh đưa một vào chế độ ipython.

Trên thực tế, như được tham chiếu ở trên, một vỏ tương tác rất thú vị (chương trình dòng lệnh) có thể được cài đặt từ iPython.org hoặc đơn giản bằng cách chạy

pip install ipython

hoặc rộng hơn:

pip install ipython[notebook]

từ dòng lệnh.


1
Điểm hay, @Roadowl Tôi đoán nói "vỏ tương tác" là một chút dư thừa phải không.
MikeiLL

@Roadowl: (một năm sau, nhưng vẫn ...) Làm thế nào về bất kỳ shell nào chạy tập lệnh theo cách không tương tác? Có lẽ một ví dụ đơn giản: $ sh -c 'foobar=3.14159'... hoặc có thể tôi đã hiểu nhầm bình luận của bạn.
Cbhihe

12

IPython là một trình thông dịch Python tương tác mạnh mẽ, tương tác nhiều hơn so với trình thông dịch tiêu chuẩn.

Để có được trình thông dịch Python chuẩn mà bạn nhập pythonvà bạn sẽ nhận được >>>lời nhắc từ nơi bạn có thể làm việc.

Để có được trình thông dịch IPython, bạn cần cài đặt nó trước. pip install ipython. Bạn gõ ipythonvà bạn nhận được In [1]:như một lời nhắc và bạn nhận được In [2]:lệnh tiếp theo. Bạn có thể gọi historyđể kiểm tra danh sách các lệnh trước đó và viết %recall 1để gọi lại lệnh.

Ngay cả khi bạn ở trong Python, bạn có thể chạy các lệnh shell trực tiếp như thế nào !ping www.google.com. Trông giống như một máy tính xách tay Jupiter dòng lệnh nếu bạn đã sử dụng nó trước đó.

Bạn có thể sử dụng [Tab]để tự động hoàn thành như trong hình. nhập mô tả hình ảnh ở đây


6

Có một vài điểm khác biệt giữa Python và IPython nhưng chúng chỉ là cách giải thích của một vài cú pháp như số ít được đề cập bởi @Ryan Chase nhưng sâu bên trong hương vị thực sự của Python vẫn được duy trì ngay cả trong Ipython.

Phần tốt nhất của IPython là máy tính xách tay IPython. Bạn có thể đặt tất cả công việc của mình vào một sổ ghi chép như tập lệnh, tệp hình ảnh, v.v. Nhưng với Python cơ sở, bạn chỉ có thể tạo tập lệnh trong một tệp và thực thi nó.

Khi bắt đầu, bạn cần hiểu rằng IPython được phát triển với mục đích hỗ trợ đa phương tiện và tập lệnh Python trong một thùng chứa tích hợp duy nhất.


6

So với Python, IPython (được tạo bởi Fernando Perez vào năm 2001) có thể làm mọi việc mà trăn có thể làm. Ipython cung cấp các tính năng bổ sung như hoàn thành tab, kiểm tra, gỡ lỗi, gọi hệ thống và nhiều tính năng khác. Bạn có thể nghĩ IPython là một giao diện mạnh mẽ cho ngôn ngữ Python.

Bạn có thể cài đặt Ipython bằng pip -pip install ipython

Bạn có thể chạy Ipython bằng cách gõ ipythonvào cửa sổ terminal của bạn.


2

Từ kinh nghiệm của tôi, tôi đã thấy rằng một số lệnh chạy trong IPython không chạy trong Python cơ sở. Ví dụ, pwdlskhông làm việc một mình trong Python cơ sở. Tuy nhiên, chúng sẽ hoạt động nếu được mở đầu bằng một %: %pwd%ls.

Ngoài ra, trong IPython, bạn có thể chạy lệnh cd như: cd C:\Users\... Điều này dường như không hoạt động trong python cơ sở, ngay cả khi được mở đầu bằng một %tuy nhiên.


3
import os; os.system('pwd')là cách tôi làm trong Python.
Tất cả Vаиітy

2
Tất cả %các lệnh là các lệnh ipython và không hoạt động trong phiên tương tác Python thông thường. Điều đó bao gồm %pwd%ls. Các %tiền tố là không bắt buộc và chỉ cần thiết khi không có mâu thuẫn với một Python toàn cầu trong phiên giao dịch hiện tại của bạn.
Martijn Pieters
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.