Hướng dẫn ipython embed async - ipython nhúng không đồng bộ
IPython 7.5 documentation states: Show
However, there seem to be no description how to specify the event loop, in the documentation. Running:
and then
Gives:
On the other hand, running:
and then:
Gives: Tôi chỉ sử dụng cái này: Nội dung chính ShowShow
Nếu bạn muốn một số mã được chạy vào đầu mỗi phiên ipython, cách dễ nhất là thêm các tập lệnh python (.py) hoặc ipython (.ipy) vào thư mục Update: 48 của bạn. Các tệp ở đây sẽ được thực thi ngay khi shell ipython được xây dựng, trước bất kỳ mã hoặc tập lệnh nào khác mà bạn đã chỉ định. Các tệp sẽ được chạy theo thứ tự tên của chúng, vì vậy bạn có thể kiểm soát thứ tự với các tiền tố, như 49.Tôi chỉ sử dụng cái này:
Cho hơn tôi thường sử dụng điều này bên trong một vòng lặp hoặc một luồng, có thể hữu ích khi bao gồm một đoạn trích cho phép chấm dứt quy trình cha mẹ (một phần để thuận tiện và một phần để nhắc nhở bản thân về cách tốt nhất để làm điều đó). 8 là lựa chọn tốt nhất ở đây, vì vậy đoạn trích của tôi bao gồm điều này (cùng logic w/r/t bằng cách sử dụng một câu lệnh):
Sau đó, tôi chỉ có thể sử dụng 9 nếu/khi tôi muốn thoát khỏi quy trình chính.Đoạn trích đầy đủ của tôi (với 0 trong trường hợp tôi có thể quên loại bỏ nó!) Trông như thế này: 0Bạn không cần phải biết bất cứ điều gì ngoài Python để bắt đầu sử dụng ipython - chỉ cần gõ các lệnh như bạn làm tại dấu nhắc Python tiêu chuẩn. Nhưng Ipython có thể làm nhiều hơn lời nhắc tiêu chuẩn. Một số tính năng chính được mô tả ở đây. Để biết thêm thông tin, hãy kiểm tra trang Mẹo hoặc xem các ví dụ trong Sách nấu ăn Ipython.tips page, or look at examples in the IPython cookbook.tips page, or look at examples in the IPython cookbook. Nếu bạn đã thực hiện điều đó nhưng hãy xem cách cài đặt Ipython.how to install ipython.how to install ipython. Nếu bạn không bao giờ sử dụng Python trước đây, bạn có thể muốn xem hướng dẫn chính thức hoặc một giải pháp thay thế, đi sâu vào Python. Bắt đầu ipython bằng cách phát hành lệnh 1 từ vỏ của bạn, bạn nên được chào đón bằng cách sau: 2Không giống như Python REP, bạn sẽ thấy rằng dấu nhắc đầu vào là 2 thay vì 3. Số 4 trong lời nhắc sẽ được sử dụng sau này trong hướng dẫn này nhưng thường không ảnh hưởng đến tính toán.Bạn sẽ có thể nhập các biểu thức dòng đơn và nhấn Enter để đánh giá chúng. Nếu một biểu thức không đầy đủ, ipython sẽ tự động phát hiện điều này và thêm một dòng mới khi bạn nhấn enter thay vì thực thi ngay lập tức. Hãy thoải mái khám phá đầu vào văn bản nhiều dòng. Không giống như nhiều bản sao khác, với ipython, bạn có thể sử dụng các khóa mũi tên lên và xuống khi chỉnh sửa các khối mã đa dòng. Dưới đây là một ví dụ về sự tương tác dài hơn với ipython replin, mà chúng ta thường gọi là phiên ipython 6Chúng tôi đã giành được chi tiết ngay bây giờ, nhưng bạn có thể nhận thấy một vài sự khác biệt đối với Python Repress tiêu chuẩn. Đầu tiên, mã của bạn phải được đánh sáng bằng cú pháp khi bạn gõ. Thứ hai, bạn sẽ thấy rằng một số kết quả sẽ có dấu nhắc 5, trong khi một số khác thì không. Chúng tôi sẽ đến với điều này sau.Tùy thuộc vào lệnh chính xác mà bạn đang nhập, bạn có thể nhận ra rằng đôi khi Enter sẽ thêm một dòng mới và đôi khi nó sẽ thực thi câu lệnh hiện tại. Ipython cố gắng đoán xem bạn đang làm gì, vì vậy hầu hết thời gian bạn không nên quan tâm. Mặc dù nếu có bất kỳ cơ hội nào Ipython không làm đúng, bạn có thể buộc thực thi khối mã hiện tại bằng cách nhấn theo trình tự ESC và ENTER. Bạn cũng có thể buộc chèn một dòng mới ở vị trí của con trỏ bằng cách sử dụng Ctrl-O. Bốn lệnh hữu ích nhấtBốn lệnh hữu ích nhất, cũng như mô tả ngắn gọn của chúng, được hiển thị cho bạn trong một biểu ngữ, mỗi khi bạn bắt đầu ipython:
Hoàn thành tabHoàn thành tab, đặc biệt là đối với các thuộc tính, là một cách thuận tiện để khám phá cấu trúc của bất kỳ đối tượng nào mà bạn đang xử lý. Chỉ cần nhập 6 để xem các thuộc tính của đối tượng. Bên cạnh các đối tượng Python và từ khóa, Tab hoàn thành cũng hoạt động trên tên tệp và thư mục.Bắt đầu với Ipython 6.0, nếu 7 được cài đặt, Ipython cũng sẽ cố gắng hoàn thành từ Jedi. Điều này cho phép không chỉ kiểm tra các đối tượng hiện có, mà còn suy ra hoàn thành tĩnh mà không cần thực thi mã. Không có gì cần thiết để làm cho nó hoạt động, chỉ cần sử dụng hoàn thành tab trên các biểu thức phức tạp hơn như sau: 0Ipython và Jedi sẽ có thể suy luận rằng 8 thực sự là một chuỗi và sẽ hiển thị các kết thúc có liên quan như 9, 0 và các phương thức chuỗi khác. Bạn có thể sử dụng phím tab để chu kỳ thông qua các lần hoàn thành và trong khi hoàn thành được tô sáng, loại của nó cũng sẽ được hiển thị. Khi loại hoàn thành là một hàm, trình tuân thủ cũng sẽ hiển thị chữ ký của hàm khi được tô sáng.Khám phá các đối tượng của bạnGõ 1 sẽ in tất cả các loại chi tiết về bất kỳ đối tượng nào, bao gồm DocStrings, các dòng định nghĩa chức năng (cho các đối số cuộc gọi) và chi tiết hàm tạo cho các lớp. Để có được thông tin cụ thể về một đối tượng, bạn có thể sử dụng các lệnh ma thuật 2, 3, 4 và 5Chức năng ma thuậtIpython có một tập hợp các chức năng ma thuật được xác định trước mà bạn có thể gọi với cú pháp kiểu dòng lệnh. Có hai loại phép thuật, định hướng dòng và định hướng tế bào. Các phép thuật dòng được đặt trước với ký tự 6 và hoạt động giống như các cuộc gọi dòng lệnh hệ điều hành: chúng nhận được một đối số phần còn lại của dòng, trong đó các đối số được truyền mà không có dấu ngoặc đơn hoặc trích dẫn. MAGICS có thể trả về kết quả và có thể được sử dụng ở phía bên phải của một nhiệm vụ. Các phép thuật của tế bào được có tiền tố với một kép 7 và chúng là các chức năng nhận được như một đối số không chỉ phần còn lại của dòng, mà cả các dòng bên dưới nó trong một đối số riêng biệt.Line magics are prefixed with the 6 character and work much like OS command-line calls: they get as an argument the rest of the line, where arguments are passed without parentheses or quotes. Lines magics can return results and can be used in the right hand side of an assignment. Cell magics are prefixed with a double 7, and they are functions that get as an argument not only the rest of the line, but also the lines below it in a separate argument.Line magics are prefixed with the 6 character and work much like OS command-line calls: they get as an argument the rest of the line, where arguments
are passed without parentheses or quotes. Lines magics can return results and can be used in the right hand side of an assignment. Cell magics are prefixed with a double 7, and they are functions that get as an argument not only the rest of the line, but also the lines below it in a separate argument.Pháp thuật rất hữu ích vì các chức năng thuận tiện trong đó cú pháp Python không phải là tự nhiên nhất, hoặc khi một người muốn nhúng cú pháp Python không hợp lệ trong dòng công việc của chúng. Các ví dụ sau đây cho thấy cách gọi ma thuật 8 tích hợp, cả trong chế độ dòng và ô: 4Các phép thuật tích hợp bao gồm:
Bạn luôn có thể gọi ma thuật bằng tiền tố 6 và nếu bạn tự gọi một phép thuật trên một dòng, miễn là định danh không được xác định trong không gian tên của bạn, bạn có thể bỏ qua điều đó thậm chí:Bạn có thể chuyển đổi hành vi này bằng cách chạy ma thuật 06. Magics di động phải luôn có tiền tố 7.Một lời giải thích chi tiết hơn về hệ thống ma thuật có thể được lấy bằng cách gọi 25 và để biết thêm chi tiết về bất kỳ chức năng ma thuật nào, hãy gọi 26 để đọc tài liệu của nó. Để xem tất cả các chức năng ma thuật có sẵn, hãy gọi 27.Chạy và chỉnh sửa OrLệnh ma thuật 9 cho phép bạn chạy bất kỳ tập lệnh Python nào và tải tất cả dữ liệu của nó trực tiếp vào không gian tên tương tác. Vì tệp được đọc lại từ đĩa mỗi lần, các thay đổi bạn thực hiện với nó được phản ánh ngay lập tức (không giống như các mô-đun được nhập, phải được tải lại cụ thể). Ipython cũng bao gồm dreload, chức năng tải lại đệ quy.dreload, a recursive reload function. 9 có các cờ đặc biệt để định thời gian thực hiện các tập lệnh của bạn (-T) hoặc để chạy chúng dưới sự kiểm soát của trình gỡ lỗi Python tựa PDB (-D) hoặc Profiler (-p).dreload, a recursive reload function. 9 có các cờ đặc biệt để định thời gian thực hiện các tập lệnh của bạn (-T) hoặc để chạy chúng dưới sự kiểm soát của trình gỡ lỗi Python tựa PDB (-D) hoặc Profiler (-p).Lệnh 00 cung cấp một xấp xỉ hợp lý của chỉnh sửa nhiều dòng, bằng cách gọi trình chỉnh sửa yêu thích của bạn tại chỗ. Ipython sẽ thực thi mã bạn nhập vào đó như thể nó được gõ một cách tương tác. Lưu ý rằng để 00 hoạt động, cuộc gọi khởi động biên tập viên của bạn phải là một cuộc gọi chặn. Trong môi trường GUI, biên tập viên của bạn có thể sẽ có một tùy chọn như vậy.Gỡ lỗiSau khi xảy ra ngoại lệ, bạn có thể gọi 62 để nhảy vào trình gỡ lỗi Python (PDB) và kiểm tra vấn đề. Ngoài ra, nếu bạn gọi 63, ipython sẽ tự động khởi động trình gỡ lỗi trên bất kỳ ngoại lệ chưa được thực hiện nào. Bạn có thể in các biến, xem mã, thực thi các câu lệnh và thậm chí đi lên và xuống ngăn xếp cuộc gọi để theo dõi nguồn thực sự của vấn đề. Đây có thể là một cách hiệu quả để phát triển và gỡ lỗi mã, trong nhiều trường hợp loại bỏ sự cần thiết của các câu lệnh in hoặc các công cụ gỡ lỗi bên ngoài.Bạn cũng có thể bước qua một chương trình ngay từ đầu bằng cách gọi 64.Lịch sử¶Ipython lưu trữ cả hai lệnh bạn nhập và kết quả mà nó tạo ra. Bạn có thể dễ dàng vượt qua các lệnh trước đó với các phím tăng và xuống hoặc truy cập vào lịch sử của bạn theo những cách tinh vi hơn. Lịch sử đầu vào và đầu ra được giữ trong các biến được gọi là 65 và 66, được khóa bởi các số nhắc nhở, ví dụ: 67. Ba đối tượng cuối cùng trong lịch sử đầu ra cũng được giữ trong các biến có tên 68, 69 và 00.Bạn có thể sử dụng chức năng ma thuật 01 để kiểm tra đầu vào và đầu ra trong quá khứ. Lịch sử đầu vào từ các phiên trước được lưu trong cơ sở dữ liệu và Ipython có thể được cấu hình để lưu lịch sử đầu ra.Một số hàm ma thuật khác có thể sử dụng lịch sử đầu vào của bạn, bao gồm 00, 03, 03, 02, 01 và 07. Bạn có thể sử dụng một định dạng tiêu chuẩn để tham khảo các dòng:Điều này sẽ lấy dòng 3 và dòng 18 đến 20 từ phiên hiện tại và các dòng 1-5 từ phiên trước. Các lệnh shell hệ thốngĐể chạy bất kỳ lệnh nào tại shell hệ thống, chỉ cần tiền tố nó với 08, ví dụ:Bạn có thể thu được đầu ra vào danh sách Python, ví dụ: 09. Để truyền các giá trị của các biến hoặc biểu thức Python cho các lệnh hệ thống, hãy đặt tiền tố chúng với $: 40 hoặc bọc trong 41. Xem phần vỏ của chúng tôi để biết thêm chi tiết.our shell section for more details.our shell section for more details.Xác định bí danh hệ thống của riêng bạnNó thuận tiện để có bí danh cho các lệnh hệ thống bạn sử dụng thường xuyên nhất. Điều này cho phép bạn làm việc liền mạch từ bên trong ipython với các lệnh tương tự bạn đã quen với vỏ hệ thống của mình. Ipython đi kèm với một số bí danh được xác định trước và một hệ thống hoàn chỉnh để thay đổi các thư mục, cả thông qua một ngăn xếp (xem 42, 43 và 44) và thông qua trực tiếp 45. Sau này giữ một lịch sử của các thư mục đã truy cập và cho phép bạn đi đến bất kỳ ai đã ghé thăm trước đó.Cấu hình¶Phần lớn Ipython có thể được điều chỉnh thông qua cấu hình. Để bắt đầu, hãy sử dụng lệnh 46 để tạo các tệp cấu hình mặc định. Chúng sẽ được đặt trong 47 và chứa các bình luận giải thích những tùy chọn khác nhau làm gì.configuration. To get started, use the command 46 to produce the default config files. These will be placed in 47, and contain comments explaining what the various options do.configuration. To get started, use the command 46 to produce the default config files. These will be placed in 47, and contain comments explaining what the various options do.Hồ sơ cho phép bạn sử dụng ipython cho các tác vụ khác nhau, giữ các tệp cấu hình và lịch sử riêng biệt cho từng tác phẩm. Thêm chi tiết trong phần Hồ sơ.the profiles section.the profiles section. Các tập tin khởi độngNếu bạn muốn một số mã được chạy vào đầu mỗi phiên ipython, cách dễ nhất là thêm các tập lệnh python (.py) hoặc ipython (.ipy) vào thư mục 48 của bạn. Các tệp ở đây sẽ được thực thi ngay khi shell ipython được xây dựng, trước bất kỳ mã hoặc tập lệnh nào khác mà bạn đã chỉ định. Các tệp sẽ được chạy theo thứ tự tên của chúng, vì vậy bạn có thể kiểm soát thứ tự với các tiền tố, như 49. |