Hướng dẫn python idle autocomplete extension - phần mở rộng tự động hoàn thành nhàn rỗi của python

IDLE is being very dodgy as to when it will actually show an Auto-complete menu. As of late it hasn't been working at all, or, more specifically, only works during an interactive session.

I've been using Code Blocks for C, and have gotten really used to the very nice auto-complete features, so it's a bit frustrating not having them -- especially while trying to learn a new frame work and what class is associated with which methods, etc, etc..

Is there an easy fix to get IDLE auto-complete working again? I'm using python version 2.7.

Is there perhaps a simple editor I should look into? I've tried Vim, which was a little too heavy for my simple needs, Ninja, which I couldn't get to work for anything, and Sublime text 2, which I couldn't get my wxpython stuff to play with. What would a nice option be? Anything similar to Code Blocks would be cool, although, I'd be perfectly happy with IDLE if it would consistently work!

REQUESTED CLARIFICATION: OK, so it seems I may have some of my terminology backwards. By non-interactive, I mean, for instance, right clicking on a python file and selecting "edit with IDLE". This brings up what I guess could be described as a text editor. You can enter all you code here. Once ready, you then hit F5, or select Run, and it launches (what I've been referring to as) the interactive terminal. It's here that you can type in code, press return, and instantly have that code evaluated.

What my question is referring to it the former, the part of IDLE where you edit the code. Sometimes while typing, after a . it will display the available methods, or after an open parenthesis it'll give hints as to the values expected. but the thing is, sometimes it does these things, sometimes it doesn't.

Trả lời câu hỏi


Câu hỏi

Làm cách nào để định cấu hình môi trường Python để tự động hoàn thành trong các phiên tương tác?

Câu trả lời

Tính năng tự động hoàn thành có sẵn trong cả giao diện dòng lệnh Python (Python) và giao diện dòng lệnh Python. Tính năng này có thể cung cấp cho bạn gợi ý và tiết kiệm thời gian khi bạn không chắc chắn về cách đánh vần chính xác của các lớp, phương thức và thuộc tính. Đây là một tính năng rất thuận tiện trong các phiên CPLEX tương tác, bởi vì bạn không phải ghi nhớ tên chính xác của các phương thức và thuộc tính.

Định cấu hình tự động hoàn thành trong GUI không nhàn rỗi Python

  • Trong Idle 1.1, bạn có thể sử dụng kết hợp chính của 'alt' và '/' để gọi tính năng tự động mở rộng tích hợp. Ngoài ra, bạn có thể chọn "từ mở rộng" trong menu chỉnh sửa chính.
  • Trong Idle 1.2, bạn có thể sử dụng kết hợp chính của 'Ctrl' và 'Space' để gọi tính năng tự động hoàn thành tích hợp. . để đạt được như vậy cũng như vậy.

Lưu ý rằng trên nền tảng Windows, IDLE thường được bao gồm trong trình cài đặt Python. Trên Linux, IDLE có thể không được cài đặt theo mặc định, trong trường hợp đó bạn cần tải xuống và cài đặt gói Python-Tools để có được Idle.

Định cấu hình tự động hoàn thành trong giao diện dòng lệnh Python

Để kích hoạt tính năng tự động hoàn thành trong giao diện dòng lệnh Python, bạn cần có các gói Readline và RLCompleter trong cài đặt Python của bạn. Tùy thuộc vào nền tảng cơ bản, các gói này có thể hoặc có thể có mặt. Trong mọi trường hợp, hãy nhập các loại sau trong giao diện dòng lệnh:
import rlcompleter
import readline
Nếu bạn thấy các lỗi như:
ImportError: No module named XXX
thì bạn sẽ cần cài đặt gói bị thiếu trước. Đối với hầu hết người dùng, gói thiếu duy nhất có thể sẽ là Readline. Tuy nhiên, bạn có thể sử dụng các gói khác, chẳng hạn như pyreadline, để đạt được chức năng tương tự. Sau khi nhập các gói (RLCompleter và Readline) hoàn thành mà không có bất kỳ loại lỗi nào sau:
readline.parse_and_bind("tab: complete")
Bây giờ bạn nên bật tự động hoàn thành. Lưu ý rằng bạn có thể đặt các dòng trên vào tệp tập lệnh Python và trỏ biến môi trường PythonStartup vào tệp, sao cho các dòng đó sẽ được thực thi tự động mỗi lần giao diện dòng lệnh Python bắt đầu.

import rlcompleter
import readline

If you see errors like:

ImportError: No module named XXX

then you will need to install missing package first. For most users, the only possible missing package would be readline. However, you can use other packages, such as pyreadline, to achieve similar functionality.
Once importing the packages (rlcompleter and readline) completes without any errors type the following:

readline.parse_and_bind("tab: complete")

You should now have auto-completion enabled. Note that you can put the above lines in a Python script file and point the environment variable PYTHONSTARTUP to the file, such that those lines will be executed automatically each time Python command line interface starts.

Ghi chú

Tính năng tự động hoàn thành ở đây tập trung vào tự động hoàn thành các lớp, phương thức và thuộc tính. Nếu bạn cần các tính năng hoàn thành tự động mở rộng hơn, chẳng hạn như tự động hoàn thành tên tệp, bạn có thể xem xét gói Python ipython, có thể được sử dụng như vỏ bash.

. \/o tps "}," thành phần ":" chung "," nền tảng ": [{" code ":" pf016 "," nhãn ":" linux "}, {" code ":" pf022 "," nhãn " : "OS X"}, {"Code": "PF033", "Nhãn": "Windows"}], "Phiên bản": "12.1; 12.2", "Phiên bản": "" "Mã": "lob10", "nhãn": "Dữ liệu và AI"}}, {"sản phẩm": {"mã": "SSSA5P", "Nhãn": "IBM ILOG CPLEX Optimization Studio"}, "Đơn vị kinh doanh " ":" Aix "}, {" code ":" pf010 "," nhãn ":" hp-ux "}, {" code ":" pf016 "," nhãn ":" linux "}, {" code ": "PF027", "Nhãn": "Solaris"}, {"Code": "PF033", "Nhãn": "Windows"}, {"Code": "PF017", "Nhãn": "Mac OS"}] , "Phiên bản": "12.2", "Phiên bản": "Tất cả các phiên bản", "Dòng doanh nghiệp": {"Code": "lob10", "Nhãn": "Dữ liệu và AI"}}]]