Hướng dẫn python gnureadline - python gnureadline

Mô-đun Readline GNU độc lập

Hướng dẫn python gnureadline - python gnureadline

Dừng đầu tiên

Hãy xem xét điều này: Bạn có thực sự cần gói này vào năm 2022 không? Bạn thường don nếu

  • Bạn sử dụng Python được cung cấp bởi phân phối Linux tiêu chuẩn như Ubuntu, Debian, Centos, v.v. (nó đã sử dụng đường đọc thích hợp.)

  • Bạn chạy Windows (thay vào đó, nó đã thắng!Windows (It won’t work! Try pyreadline or prompt_toolkit instead.)

  • Bạn sử dụng python được cung cấp bởi homebrew hoặc fink trên macOS (nó đã đọc thật!)Homebrew or Fink on macOS (It has real readline already!)

  • Bạn muốn nó cho ipython (nó đã chuyển sang prompt_toolkit trong phiên bản 5.0.)

  • Bạn sử dụng phân phối Python như Anaconda hoặc Enters / Canopy (một lần nữa, Real Readline.)

Bạn có thể cần nó nếu

  • Bạn sử dụng Python được cung cấp bởi MacPorts hoặc hệ thống trên macOS (Python được biên dịch với LIBEDIT.)

  • Bạn sử dụng phân phối Python như ActivePython trên Linux hoặc MacOS (được sử dụng để gửi mà không cần đọc.)

  • Bạn muốn nhận các sửa lỗi và tính năng sửa lỗi mới nhất trong thư viện Readline hoặc mô -đun Python của nó (thường là khi bị kẹt trên các hệ thống cũ hơn.)

Vẫn quan tâm?

Một số nền tảng, chẳng hạn như macOS, không được cài đặt với GNU Readline. Mô -đun mở rộng Readline trong thư viện tiêu chuẩn của MAC System System Python sử dụng thư viện EDITLINE (LIBEDIT) của NETBSD, đây là một thay thế dòng đọc với giấy phép phần mềm ít hạn chế hơn.

Vì các lựa chọn thay thế cho GNU Readline không có chức năng hoàn toàn tương đương, nên rất hữu ích khi thêm hỗ trợ Readline thích hợp cho các nền tảng này. Mô -đun này đạt được điều này bằng cách kết hợp mô -đun Readline Python tiêu chuẩn với mã nguồn GNU Readline, được biên dịch và liên kết tĩnh với nó. Kết quả cuối cùng là một gói đơn giản để cài đặt và không yêu cầu thư viện chia sẻ thêm.

Mô -đun được gọi là Gnureadline để không đụng độ với mô -đun Readline trong thư viện tiêu chuẩn. Điều này giữ cho các trình cài đặt lịch sự như PIP hạnh phúc và đủ cho các vỏ như Ipython. Xin lưu ý rằng ipython không phụ thuộc vào gnureadline nữa vì phiên bản 5.0 vì hiện tại sử dụng Prompt_toolKit.Please take note that IPython does not depend on gnureadline anymore since version 5.0 as it now uses prompt_toolkit instead.

Một trường hợp sử dụng điển hình là ghi đè dòng đọc trong mã của bạn như thế này:

try:
    import gnureadline as readline
except ImportError:
    import readline

Nếu bạn muốn sử dụng mô-đun này như một sự thay thế thả vào cho READLINE trong vỏ Python tiêu chuẩn, nó phải được cài đặt với tập lệnh Easy_install ít lịch sự hơn được tìm thấy trong setuptools. Xin lưu ý rằng Easy_Install đã được không dùng nữa trong một thời gian và sắp được bỏ khỏi setuptools. Tiến hành không có rủi ro của riêng bạn!Please take note that easy_install has been deprecated for a while and is about to be dropped from setuptools. Proceed at your own risk!

Mô -đun có thể được sử dụng với cả Python 2.x và 3.x, và đã được thử nghiệm với các phiên bản Python 2.6, 2.7 và 3.2 đến 3.10. Ba số đầu tiên của phiên bản mô -đun phản ánh phiên bản của Thư viện Readline GNU cơ bản (cấp độ chính, nhỏ và bản vá), trong khi bất kỳ số thứ tư bổ sung nào phân biệt các bản cập nhật mô -đun khác nhau dựa trên cùng một thư viện Readline.

Mô -đun này thường không cần thiết trên Linux và các hệ thống UNIX khác với hỗ trợ Readline mặc định. Một ngoại lệ là nếu bạn có phân phối Python không bao gồm GNU Readline do các hạn chế cấp phép (chẳng hạn như ActiveState Active ActivePhon trong quá khứ). Nếu bạn đang sử dụng Windows, cũng được vận chuyển mà không cần GNU Readline, bạn có thể muốn xem xét sử dụng mô -đun PyReadline thay thế, đây là một thay thế Readline được viết bằng Python thuần túy tương tác với bảng tạm Windows.

Phiên bản phát triển mới nhất có sẵn từ kho Github.

Lịch sử

8.1.2 (2022-06-14)

  • #57, #58: Bây giờ hỗ trợ kiến ​​trúc ARM64 (Apple M1, Raspberry Pi)

  • Đã chuyển CI từ Travis sang hành động GitHub và thêm CibuildWheel

  • Sử dụng Python 3.11.0a7 Readline.c (cam kết AAC29AF, 2021-10-13), OK cho 3.10, 3.9

  • Sử dụng Python 3.8.8 Readline.c (cam kết F9D7C12, 2021-02-16), cũng ok cho 3.7

  • Sử dụng Python 2.7.18 Readline.c (cam kết F32BCF8, 2019-11-07)

  • Cập nhật để xây dựng chống lại Readline 8.1 (cấp độ 2)

8.0.0 (2019-07-10)

  • Sử dụng Python 3.7.4 Readline.c (cam kết EF10F88, 2019-03-20), cũng ok cho 3,8

  • Sử dụng Python 3.6.8 Readline.c (cam kết 25555E0, 2018-12-08), cũng ok cho 3,5

  • Sử dụng Python 3.4.4 Readline.c (cam kết 7462b64, 2015-11-02)

  • Sử dụng Python 2.7.16 Readline.c (cam kết 89b5ea2, 2018-12-19)

  • Cập nhật để xây dựng chống lại Readline 8.0

6.3.8 (2017-10-20)

  • #42, #44: Các vấn đề về trình biên dịch địa chỉ (Tránh Cygwin, sửa chữa đa dạng trên GCC)

  • #40: Giấy phép GPLV3 rõ ràng

  • #39: Tìm kiếm Bash Shell ở nhiều nơi hơn

  • Sử dụng Python 2.x Readline.c từ nhánh HG 2.7 (95814: 192F9EFE4A38)

  • Sử dụng Python 3.x Readline.c từ nhánh HG 3.4 / 3.5 (95813: EC6ED10D611E)

  • Cập nhật để xây dựng chống lại Readline 6.3 (cấp 8)

6.3.3 (2014-04-08)

  • Làm lại chính của quá trình xây dựng OS X (phát hiện các vòm, không có cờ tùy chỉnh)

  • #20, #22, #28: Các vấn đề khác nhau được giải quyết bởi bản dựng được sắp xếp hợp lý

  • #28: Sử dụng $ cc hoặc cc để biên dịch libeadline thay vì gcc mặc định

  • #35: Cách giải quyết cho Clang từ Xcode 5.1 và Mac OS X 10.9.2

  • Sử dụng Python 3.4 Readline.c từ nhánh HG 3.4 (89086: 3110fb3095a2)

  • Cập nhật để xây dựng chống lại Readline 6.3 (cấp 3)

6.2.5 (2014-02-19)

  • Đổi tên mô -đun thành Gnureadline để cải thiện cài đặt với PIP

  • #23, #25-27, #29-33: Điều chỉnh và gói được làm lại thành Gnureadline

  • Sử dụng Python 2.x Readline.c từ nhánh HG 2.7 (89084: 6B10943A5916)

  • Sử dụng Python 3.x Readline.c từ nhánh HG 3.3 (89085: 6ADAC0D9B933)

  • Cập nhật để xây dựng chống lại READLINE 6.2 (cấp 5)

6.2.4.1 (2012-10-22)

  • #21: Xây dựng cố định trên python.org 3.3 / Mac OS 10.8

6.2.4 (2012-10-17)

  • #15: Phát hiện các trình biên dịch được cải thiện trước XCode 4.3

  • Sử dụng Python 3.x readline.c từ thẻ v3.3.0 (thay đổi 73997)

  • Cập nhật để xây dựng chống lại READLINE 6.2 (cấp độ 4)

6.2.2 (2012-02-24)

  • #14: Biên dịch cố định với XCODE 4.3 trên Mac OS 10.7

  • Cập nhật để xây dựng chống lại READLINE 6.2 (cấp độ 2)

6.2.1 (2011-08-31)

  • #10: Đã sửa lỗi ‘_emacs_meta_keymap Biểu tượng bị thiếu trên Mac OS 10.7

  • #7: Đã sửa lỗi kiểm tra phiên bản SDK để hoạt động với Mac OS 10.7 trở lên

  • Sử dụng Python 2.x Readline.c từ Release27-Main nhánh (R87358)

  • Sử dụng Python 3.x readline.c từ Release32-Main nhánh (R88446)

6.2.0 (2011-06-02)

  • #5: Đã xóa ‘-Arch PPC, trên Mac OS 10.6, vì Snow Leopard chỉ hỗ trợ Intel

  • Cập nhật để xây dựng chống lại READLINE 6.2 (cấp độ bản vá 1)

6.1.0 (2010-09-20)

  • Đã thay đổi số phiên bản để phản ánh phiên bản Readline thay vì phiên bản Python

  • #4: Cập nhật để xây dựng chống lại READLINE 6.1 (cấp độ bản vá 2)

  • #2: Hỗ trợ Python 3

  • Sử dụng Python 2.x Readline.c từ Release27-Main nhánh (R83672)

  • Sử dụng Python 3.x Readline.c từ thẻ R32A2 (R84541)

  • Mã nguồn chuyển đến GitHub

  • Người bảo trì bổ sung: Sridhar Ratnakumar

2.6.4 (2009-11-26)

  • Đã thêm -FPIC vào cờ trình biên dịch để sửa lỗi liên kết trên Ubuntu 64 bit

  • Đã bật tất cả các chức năng đọc dòng được chỉ định trong macro pyconfig.h

  • Sử dụng readline.c từ Python SVN Trunk (R75725), theo sau bản phát hành 2.6.4

  • Bản vá Readline.c để thay thế các cuộc gọi py_xdecref bằng py_clear an toàn hơn

  • Đã sửa lỗi biên dịch trên Mac OS 10.4 với Xcode cũ hơn phiên bản 2.4

2.6.1 (2009-11-18)

  • Gói cập nhật để làm việc với Mac OS 10.6 (Snow Leopard), được vận chuyển với Python 2.6.1

  • Sử dụng readline.c từ bản phát hành Python 2.6.1

  • Không gian kéo dài không gian kéo dài Bugfix từ Python SVN Trunk (xem ví dụ: https://bugs.launchpad.net/python/+bug/470824 để biết chi tiết về lỗi)

  • Cập nhật để xây dựng chống lại READLINE 6.0 (cấp độ 4)

  • Bây giờ xây dựng thành công trên Linux (đã loại bỏ các cờ dành riêng cho MAC trong trường hợp này) và vẫn hỗ trợ Mac OS 10.4 và 10.5

2.5.1 (2008-05-28)

  • Gói cập nhật để làm việc với Mac OS 10.5 (Leopard), được vận chuyển với Python 2.5.1

  • Sử dụng readline.c từ bản phát hành Python 2.5.1

  • Cập nhật để xây dựng chống lại READLINE 5.2 (cấp độ 12)

  • Người bảo trì mới: Ludwig Schwardt

2.4.2 (2005-12-26)

  • Gói gốc của Bob Ippolito, hỗ trợ Python 2.3 / 2.4 trên Mac OS 10.3 (Panther) và 10,4 (Tiger)

  • Builds chống lại Readline 5.1