Hướng dẫn python repl autocomplete - tự động hoàn thành đại diện python
Tự động hoàn thành cho Shell Python của bạn | Bảng điều khiển | Thông dịch viênĐây là một cái cũ, nhưng tôi muốn có nó ở đây như một lời nhắc nhở Một trong những tính năng đẹp của shell django (nghĩa là vỏ python bạn nhận được khi gọi. -Phompletion để xem tất cả các mô -đun trong đó. Ngày nay, rất nhiều người đang sử dụng ipython vì thiếu tính năng này trên vỏ python mặc định, nhưng điều này chỉ theo mặc định và nếu bạn đang sử dụng ipython chỉ vì hoàn thành tab, hãy quên cài đặt thêm Phải làm thủ thuật nhỏ này: import rlcompleter, readline readline.parse_and_bind('tab:complete') Và bạn có thể sử dụng hoàn thành tab, ví dụ: >>> import smtplib >>> smtplib. smtplib.CRLF smtplib.SSLFakeFile smtplib.__setattr__( smtplib.LMTP smtplib.__all__ smtplib.__sizeof__( smtplib.LMTP_PORT smtplib.__class__( smtplib.__str__( smtplib.OLDSTYLE_AUTH smtplib.__delattr__( smtplib.__subclasshook__( smtplib.SMTP smtplib.__dict__ smtplib._have_ssl smtplib.SMTPAuthenticationError( smtplib.__doc__ smtplib.base64 smtplib.SMTPConnectError( smtplib.__file__ smtplib.email smtplib.SMTPDataError( smtplib.__format__( smtplib.encode_base64( smtplib.SMTPException( smtplib.__getattribute__( smtplib.hmac smtplib.SMTPHeloError( smtplib.__hash__( smtplib.quoteaddr( smtplib.SMTPRecipientsRefused( smtplib.__init__( smtplib.quotedata( smtplib.SMTPResponseException( smtplib.__name__ smtplib.re smtplib.SMTPSenderRefused( smtplib.__new__( smtplib.socket smtplib.SMTPServerDisconnected( smtplib.__package__ smtplib.ssl smtplib.SMTP_PORT smtplib.__reduce__( smtplib.stderr smtplib.SMTP_SSL smtplib.__reduce_ex__( smtplib.SMTP_SSL_PORT smtplib.__repr__( Trong ví dụ này, sau khi nhập smtplib, tôi vừa viết smtplib. Trong shell và hit tab hai lần, để có được tất cả các tùy chọn có sẵn trong mô -đun đó. Đẹp, phải không? OK, bây giờ sẽ còn đẹp hơn nếu chúng ta không phải thiết lập hoàn thành tab mỗi khi chúng ta chạy vỏ Python, nhưng đây là một loại dễ dàng. Mỗi lần bạn chạy Python Shell | Bảng điều khiển | Trình thông dịch, nó sẽ tìm kiếm một biến trong môi trường của bạn có tên là PythonStartup, nơi bạn có thể đặt một tệp sẽ được thực thi sau khi bắt đầu shell (nơi hoàn hảo để đặt một số dòng init). Vì vậy, tất cả những gì bạn phải làm là, trước tiên, hãy thêm hai dòng này vào một tệp, ví dụ, được gọi là .PythonRc trong nhà của bạn:first, add this two lines to a file, for example, called .pythonrc in your home: $ cat ~/.pythonrc import rlcompleter, readline readline.parse_and_bind('tab:complete') $ Thứ hai, thêm biến pythonstartup vào tệp hồ sơ shell của bạn. Nếu bạn đang sử dụng CSH, TCSH hoặc các vỏ tương tự, điều này sẽ làm điều đó:, add the PYTHONSTARTUP variable to your shell profile file. If you are using csh, tcsh or similar shells, this will do it: echo "setenv PYTHONSTARTUP ~/.pythonrc" >> ~/.cshrc Nếu vỏ của bạn là SH, bash, ksh hoặc sments, điều này sẽ làm điều đó:sh, bash, ksh or similars, this will do it: echo "export PYTHONSTARTUP=~/.pythonrc" >> ~/.profile (Kiểm tra thông tin hệ điều hành của bạn, có lẽ thay vì .profile nó có thể là .kshrc, .bashrc hoặc một cái gì đó tương tự). Sau đó, bạn sẽ có thể sử dụng hoàn thành tab mỗi lần trong vỏ Python mặc định của bạn, không có sự phụ thuộc bổ sung!with no additional dependencies! Lưu ý: Tất nhiên, dù sao bạn cũng nên xem Ipython, vì nó có nhiều tính năng hơn nhiều so với hoàn thành tab, nó là một công cụ mạnh mẽ mà bạn có thể thấy rất hữu ích. Of course, you should take a look at iPython anyway, as it has a lot more features than tab-completion, it is a powerful tool you may find very very useful. Ipython cho phép tương tác không chặn với Tkinter, GTK, QT và WX. Vỏ python tiêu chuẩn chỉ cho phép tương tác với tkinter. Ipython có thể tương tác quản lý các cụm điện toán song song bằng cách sử dụng các cuộc gọi lại trạng thái không đồng bộ và/hoặc MPI. Ipython có thể được sử dụng làm thay thế vỏ hệ thống, đặc biệt là trên Windows, có vỏ có khả năng tối thiểu. Hành vi mặc định của nó phần lớn quen thuộc từ các shell Unix, nhưng nó cho phép tùy chỉnh và tính linh hoạt của việc thực hiện trong môi trường Python trực tiếp Này "nồi hơi đôi", thnx cho bình luận. Tôi biết ipython có rất nhiều tính năng (bạn chỉ phải kiểm tra http://ipython.scipy.org để có thêm thông tin về nó. Dù sao, có những lúc mọi người không cần tất cả các tính năng đó, nhưng chỉ cần một số thứ Giống như hoàn thành hoặc tiết kiệm lịch sử vào Shell Python mặc định, đó là đối tượng hoàn hảo cho bài đăng của tôi. Tuần này, trong khi tham dự hội nghị Europython 2010, tôi đã tìm thấy Bpython, một sự thay thế thực sự thú vị khác cho trình thông dịch Python/Shell/giao diện điều khiển mặc định. nên xem xét nó. Xin chào Wu, điều này không hiệu quả với tôi.Tôi đã chạy cả hai dòng trên bảng điều khiển và vẫn không thể tự động hoàn thành hoạt động.Tôi đang làm điều này trên thiết bị đầu cuối Mac/Iterm2. Cảm ơn, chỉ là những gì tôi đang tìm kiếm, rất rõ ràng và đơn giản.Người đàn ông tốt. Tương tự ở đây.Sử dụng mac/iterm2 và tinh chỉnh không làm những gì nó nên ... Này Nadav!Phiên bản nào của OSX và phiên bản Python nào?Tôi đã không thử trong các phiên bản gần đây của OSX, nhưng vẫn hoạt động với tôi trong 10.8.x với các phiên bản Python gần đây (2.7.11 và 3.5.1).Ngoài ra, đó có phải là Python được cài đặt sẵn với OSX, hoặc bạn đã cài đặt nó thông qua MacPorts hoặc bất kỳ hệ thống gói nào khác? Vấn đề với điều này là bạn không thể sử dụng các tab để thụt vào nữa và mã đúc sao chép với các tab sẽ không hoạt động Không có trackback. |