标准Python readline扩展,静态链接到GNU readline库。
项目描述
独立的GNU readline模块
我需要这个包吗?
进行以下快速检查
python -c "import readline; print(readline.__doc__)"
如果输出是
Importing this module enables command line editing using GNU readline.
那么您已经安装了GNU Readline,您可能不需要此包(除非您知道自己在做什么!)然而,如果输出是
Importing this module enables command line editing using libedit readline.
那么您就来到了正确的地点。
您仍然感兴趣吗?
某些Posix平台,如macOS,没有预装GNU Readline。Readline的许可协议为GPL,这使得它难以与专有软件一起分发。一个流行的替代方案是NetBSD的Editline(libedit)库,它具有更宽松的BSD许可协议。如果您通过流行的开源软件包管理器(如Homebrew或MacPorts)在macOS上安装Python,您将获得一个调用libedit内部(尽管名称仍然混乱地称为“readline”)的readline扩展模块!
虽然已经投入了大量努力使GNU Readline和Editline在Python中可以互换,但它们并不完全等效。如果您需要正确的Readline支持,此模块通过将标准Python readline模块与GNU Readline源代码捆绑在一起,并将其编译并静态链接到它来提供支持。最终结果是易于安装的包,只需系统依赖的ncurses库。
该模块被称为gnureadline,以避免与标准库中现有的readline模块冲突。它支持两种通用需求
显式导入readline的代码
一个典型的用例是在你的代码中像这样覆盖readline
try:
    import gnureadline as readline
except ImportError:
    import readline标准交互式Python Shell中的Tab补全
上述技巧并不能修复Python Shell中的Tab补全,因为在Shell打印其第一次输出到屏幕时,已经太晚了……一个解决方案是在启动过程中早期将此修复方法放入site模块导入的自定义模块之一。
通过安装gnureadline并运行以下命令,这会方便地为你完成:
<python> -m override_readline
其中<python>是你想要修复的特定Python解释器(例如python3)。脚本首先尝试将修复方法添加到usercustomize,如果用户site未启用(例如在virtualenvs中),则回退到sitecustomize。如果你想直接进入sitecustomize,添加标准的-s选项
<python> -s -m override_readline
该脚本详细解释了它在做什么,并且拒绝两次安装修复程序。另一个好处是override_readline使得交互式Python解释器在启动时获得一个有用的提示,例如
Python 3.12.2 (main, Apr 17 2024, 20:25:57) [Clang 15.0.0 (clang-1500.0.40.1)] on darwin Type "help", "copyright", "credits" or "license" for more information. Using GNU readline instead of the default readline (see sitecustomize.py) >>>
如果你将gnureadline安装为其他包的依赖项,则不需要运行override_readline脚本。它只是为了帮助你修复标准Python Shell中的Tab补全。
虽然usercustomize和sitecustomize与特定的Python版本相关联,但你也可以通过将修复方法添加到PYTHONSTARTUP文件(例如~/.pythonrc)来修复所有Python版本的Tab补全。这需要一些额外的设置,如这个示例pythonrc所示,它还展示了如何维护libreadline和libedit的独立历史文件。该PYTHONSTARTUP文件只影响交互式Shell,而用户/站点自定义则影响使用readline的一般脚本。Python教程有一个部分描述了这些自定义选项。
请注意 IPython 不再依赖于gnureadline进行Tab补全。自5.0版本以来,它使用 prompt_toolkit 代替。
版本
该模块可用于Python 2.x和3.x,并已在Python 2.6、2.7、3.2到3.12版本上进行过测试。模块版本的前三个数字反映了底层GNU Readline库的版本(主版本、次版本和补丁级别),而任何额外的第四个数字区分了基于相同Readline库的不同模块更新。
最新的开发版本可在GitHub仓库中获取。
如果你使用的是没有GNU Readline的Windows操作系统,你可能需要考虑使用pyreadline3模块,这是一个用纯Python编写的readline替代品,可以与Windows剪贴板交互。
历史
8.2.10 (2024-06-10)
- #61, #62, #65, #69: 支持 Python 3.11 和 3.12,但尚未支持 3.13 
- 通过站点自定义的新readline覆盖机制 
- 重写文档和测试以反映这一点 
- 将GitHub Actions升级到使用macos-13和macos-14原生构建 
- 使用Python 3.12.1 readline.c(提交 7225a01,2023-11-28),也适用于 3.11 
- 使用Python 3.10.9 readline.c(提交 5074c35,2022-10-27),也适用于 3.9 
- 升级到构建readline 8.2(补丁级别 10) 
8.1.2 (2022-06-14)
- #57, #58: 现在支持arm64架构(Apple M1,Raspberry Pi) 
- 将CI从Travis + multibuild迁移到GitHub Actions + cibuildwheel 
- 使用Python 3.11.0a7 readline.c (提交号 aac29af,2021-10-13),适用于3.10和3.9 
- 使用Python 3.8.8 readline.c (提交号 f9d7c12,2021-02-16),也适用于3.7 
- 使用Python 2.7.18 readline.c (提交号 f32bcf8,2019-11-07) 
- 更新为针对readline 8.1(补丁级别2)进行构建 
8.0.0 (2019-07-10)
- 使用Python 3.7.4 readline.c (提交号 ef10f88,2019-03-20),也适用于3.8 
- 使用Python 3.6.8 readline.c (提交号 25555e0,2018-12-08),也适用于3.5 
- 使用Python 3.4.4 readline.c (提交号 7462b64,2015-11-02) 
- 使用Python 2.7.16 readline.c (提交号 89b5ea2,2018-12-19) 
- 更新为针对readline 8.0进行构建 
6.3.8 (2017-10-20)
- #42, #44: 解决编译器问题(避免使用Cygwin,修复gcc上的多架构问题) 
- #40: 明确GPLv3许可证 
- #39: 在更多位置查找bash shell 
- 使用Python 2.x readline.c来自hg 2.7分支(95814:192f9efe4a38) 
- 使用Python 3.x readline.c来自hg 3.4 / 3.5分支(95813:ec6ed10d611e) 
- 更新为针对readline 6.3(补丁级别8)进行构建 
6.3.3 (2014-04-08)
- 对OS X构建过程进行重大重构(检测架构,无自定义标志) 
- #20, #22, #28: 通过新的简化构建解决了各种问题 
- #28: 使用$CC或cc而不是默认的gcc来编译libreadline 
- #35: Xcode 5.1和Mac OS X 10.9.2的clang的解决方案 
- 使用Python 3.4 readline.c来自hg 3.4分支(89086:3110fb3095a2) 
- 更新为针对readline 6.3(补丁级别3)进行构建 
6.2.5 (2014-02-19)
- 将模块重命名为gnureadline,以改善pip安装 
- #23, #25-27, #29-33: 对gnureadline进行了调整和重新设计 
- 使用Python 2.x readline.c来自hg 2.7分支(89084:6b10943a5916) 
- 使用Python 3.x readline.c来自hg 3.3分支(89085:6adac0d9b933) 
- 更新为针对readline 6.2(补丁级别5)进行构建 
6.2.4.1 (2012-10-22)
- #21: 修复了在Python.org 3.3 / Mac OS 10.8上的构建问题 
6.2.4 (2012-10-17)
- #15: 改进了Xcode 4.3之前编译器的检测 
- 使用Python 3.x readline.c来自v3.3.0标签(changeset 73997) 
- 更新为针对readline 6.2(补丁级别4)进行构建 
6.2.2 (2012-02-24)
- #14: 修复了在Mac OS 10.7上使用Xcode 4.3的编译问题 
- 更新为针对readline 6.2(补丁级别2)进行构建 
6.2.1 (2011-08-31)
- #10: 修复了Mac OS 10.7上缺失的"_emacs_meta_keymap"符号问题 
- #7: 修复了SDK版本检查,使其与Mac OS 10.7及更高版本兼容 
- 使用Python 2.x readline.c来自release27-maint分支(r87358) 
- 使用Python 3.x readline.c来自release32-maint分支(r88446) 
6.2.0 (2011-06-02)
- #5: 在Mac OS 10.6中移除了"-arch ppc",因为Snow Leopard只支持Intel 
- 更新为针对readline 6.2(补丁级别1)进行构建 
6.1.0 (2010-09-20)
- 更改版本号以反映readline版本而不是Python版本 
- #4: 更新为针对readline 6.1(补丁级别2)进行构建 
- #2: 支持Python 3 
- 使用Python 2.x readline.c来自release27-maint分支(r83672) 
- 使用Python 3.x readline.c来自r32a2标签(r84541) 
- 源代码已迁移到GitHub 
- 额外维护者:Sridhar Ratnakumar 
2.6.4 (2009-11-26)
- 将-fPIC添加到编译器标志,以修复64位Ubuntu上的链接错误 
- 启用在pyconfig.h宏中指定的所有readline功能 
- 使用Python svn trunk(r75725)中的readline.c,该文件遵循2.6.4的发布 
- 修补readline.c,将Py_XDECREF调用替换为更安全的Py_CLEAR 
- 修复了在Mac OS 10.4上使用版本低于2.4的XCode时的编译错误 
2.6.1 (2009-11-18)
- 将软件包更新为与Mac OS 10.6(Snow Leopard)兼容,该操作系统随Python 2.6.1一起发货 
- 使用Python 2.6.1发布中的readline.c 
- 从Python svn trunk(例如,见https://bugs.launchpad.net/python/+bug/470824)回滚了“虚假尾随空格”错误修复 
- 更新为针对readline 6.0(补丁级别4)进行构建 
- 现在在Linux上成功构建(在此情况下删除了特定于Mac的标志),并且仍然支持Mac OS 10.4和10.5 
2.5.1 (2008-05-28)
- 更新软件包以支持与Mac OS 10.5(Leopard)兼容,该系统预装Python 2.5.1 
- 使用Python 2.5.1版本中的readline.c 
- 升级到基于readline 5.2(修补级别12)构建 
- 新维护者:Ludwig Schwardt 
2.4.2 (2005-12-26)
- 原始软件包由Bob Ippolito提供,支持Mac OS 10.3(Panther)和10.4(Tiger)上的Python 2.3/2.4 
- 基于readline 5.1构建 
项目详情
gnureadline-8.2.10.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | a746ba98d4de37b079e42d949b704c33c168b30bd1f9071a1d25c9da9a449997 | |
| MD5 | b0c597a2dd32b629e7fa4c0a15ff764d | |
| BLAKE2b-256 | aef124bad6d60fa8a5c9d1c37da72521df0466e48d85db5812a9ea8b7eab5cf3 | 
gnureadline-8.2.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | b86526de74cacf186dd2b7a9dedd0a5776ab4bced07832abdf2c1917d2b77507 | |
| MD5 | 129c94a058f8adecb7ddb668339d7cef | |
| BLAKE2b-256 | dc94ef4d747f66bf9e180e5a2480a76a459869cf3c34ae02eb768e29b1c1425b | 
gnureadline-8.2.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 774e2e566a00f89ccfd40b88e652cad563627fe69929a5c2fc656897bd66228f | |
| MD5 | 8fa842da0c46fbcaff6f864e0c3088f6 | |
| BLAKE2b-256 | f9ed8a5646652e19673676502d4ee19f24866781068b33f8620771b011bcacb9 | 
哈希值 用于 gnureadline-8.2.10-cp312-cp312-macosx_11_0_arm64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 20803d53d7ab3d2cdd7d2d9e3a374bcd9d60618c101287915404adf62126503f | |
| MD5 | a6d4245fd0f279cd85c63ff1eed61606 | |
| BLAKE2b-256 | b2481ca38be580e1b82dc6dd750734ed4d8b98fac38184527dec2b7ee64e5757 | 
哈希值 用于 gnureadline-8.2.10-cp312-cp312-macosx_10_9_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 33472b7d68b7ed938f0a6f61fbfcba58af85a1e36328b145b383e1dd6e90dcc8 | |
| MD5 | 98144c464bd98160c5395c1b9363165d | |
| BLAKE2b-256 | 92e4a949726d51744e8eea42934d0b61d6494b553f6e663852df47fd3cee91bd | 
哈希值 用于 gnureadline-8.2.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | b96a83b4fdcf30c10875eebd937330ed2e22980371cfed32a9038f35f5f6729d | |
| MD5 | 21f7939a629ba2ca51e67021002cce05 | |
| BLAKE2b-256 | ea9bd8f3495e45d11b1218d436a5115a1efd4353ff8caac2f1688b2e4b2bcf36 | 
哈希值 用于 gnureadline-8.2.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 38ebc621f86db71ccab496a9bb15bc7fb2a46cdd5f930a8fd5fea075c43a0be8 | |
| MD5 | fde58025fec26ec5ce0f4b134f49881d | |
| BLAKE2b-256 | 567da9f76f63757d53e2798bda40a91114f1e268f51ecaca4b10c034e44e1573 | 
哈希值 用于 gnureadline-8.2.10-cp311-cp311-macosx_11_0_arm64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 7a8da474f9d6b01c91a492227815238596cd352e0824dcc406b220619c5ab129 | |
| MD5 | e984745c3b5a147c8f58fe7ab32cb19f | |
| BLAKE2b-256 | cb219cf6891def38f18898efb3a18a76da890eda6eae8a25a5486474b0abd3d3 | 
哈希值 用于 gnureadline-8.2.10-cp311-cp311-macosx_10_9_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 423e502ddeb71a2025dc6a8cd9e1826be30ddb2f3d0a55a4c38eda035eafbc19 | |
| MD5 | d82f25aa3ca760c5229254e424e62d29 | |
| BLAKE2b-256 | 3e2dcd4b479d21ef89f88c04e11a8b6245fbf617b3a2fd15d37124651f9d8d96 | 
哈希值 用于 gnureadline-8.2.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | fd85960804d0d2cdf73f25263928feed5f0b113c55e23c179ad1f1c75b48d6c5 | |
| MD5 | c541cad0088b7f43b69b39fa844b6acb | |
| BLAKE2b-256 | 475225b700d5d185fd375f7ca5e28185dbfa973e01f039f77f5cdd25f784517f | 
哈希值 用于 gnureadline-8.2.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 00a2b753a0a98524665b383a338a3da9ec918c3268295affd806a187cc27d7ab | |
| MD5 | fab534552b742789f84c0e02c02df14a | |
| BLAKE2b-256 | 86cdb82a1bb616e6f39b4c4c373e6860091472130d08803973697279f30ad3c4 | 
哈希值 用于 gnureadline-8.2.10-cp310-cp310-macosx_11_0_arm64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 52d983cf1770102326cfd036e0d785834e2a73822891c4295c2e910d76113c36 | |
| MD5 | 24abfd8c756c5222824210b67537f395 | |
| BLAKE2b-256 | 48a11f7e2eddc5c8099f6d4ddb450a7d6a0b66c0b5358dc2a9bfb968bbee878f | 
哈希值 用于 gnureadline-8.2.10-cp310-cp310-macosx_10_9_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 35687413adeef1dc8dfca95407f272360f241f716c837ef5291f2cb5d8fa9474 | |
| MD5 | d66251d8e46a0a60eb701826758ab294 | |
| BLAKE2b-256 | dfc3e303d9fcad874aedc30bfe6b1cd4ef5947b22b3ff05f6b3309201bd7af6a | 
哈希值 用于 gnureadline-8.2.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | edd241f734b4ad6e19891961030821cd0f14c499b82bfef91b35827cb3eed2a6 | |
| MD5 | fec46c9b6a885ec56b3b8ea1fb1e6d9c | |
| BLAKE2b-256 | 205b541466e709cd5679647a8bbe726f18c957cc1dea87a990f945cb23017e37 | 
哈希值 用于 gnureadline-8.2.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 0123abd20c7aff7fa64ca377c9a4021ff1fd27aa5987c1e9159a97a5bb4023ab | |
| MD5 | 2357d28fb6e28579a8da55c722a1df04 | |
| BLAKE2b-256 | 8af42034e309724caf908b3d2addc221ba45569c2b1d0d4a49d1495abeb753df | 
哈希值 用于 gnureadline-8.2.10-cp39-cp39-macosx_11_0_arm64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 4671a617557d0ced5de8cdafb1177acbb1180f4249657f8f30a573357974936d | |
| MD5 | 03ae078230ae1e4ca6fcf4d0447e4e77 | |
| BLAKE2b-256 | 387b6b6ffd1559e81f2591500e480af0d9717ee6587648baddd35188eccc81d6 | 
哈希值 for gnureadline-8.2.10-cp39-cp39-macosx_10_9_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 59fd4ab39d434aa311b2fc993b24c270d2b146be7e99af9b6640119482e2b23c | |
| MD5 | eb44bca295f6a341b799b4a638a99139 | |
| BLAKE2b-256 | 0ce2f1df9e5024b0725c708eef85b3e78cd5825ad2b431ff54aa078f4e5121b5 | 
哈希值 for gnureadline-8.2.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | b1e45dcedaadcd34e3115c54b08374ea9cbb5186de0a9448025d3c79942f79ef | |
| MD5 | f264cb9c7d760f1d77638991fdc5d76f | |
| BLAKE2b-256 | 6312b289391fb0e762fe61279ed0c4ee106f669e54e0fdea52b9ce53a1fc6d04 | 
哈希值 for gnureadline-8.2.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 8c4cb8b23f64e7cc1bb48810964c22552fdb56936ddfd8946239b9bf45fe2654 | |
| MD5 | 95734a169ce823478edf36418aa0aa69 | |
| BLAKE2b-256 | c93e7a5d26475bdd3de18efc3a884bf84c2d66439ca6a83e78b752afa47ebeab | 
哈希值 for gnureadline-8.2.10-cp38-cp38-macosx_10_9_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 2f20059685bd0050794e07f6f3c6a9af1299d9a64e5129b1e8a6e40e36da8d84 | |
| MD5 | 160963a8b96b7fb90fe374cf0b32467a | |
| BLAKE2b-256 | 86b350377af62884ae4826e6fc76be5f39c52779e8cf669db8e51fb716d82ddf | 
哈希值 for gnureadline-8.2.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 1b3d7425d2f5c69dda1a31b3a8a1929ac8b86934bf6c2f2d6316c07afaae2382 | |
| MD5 | bbeb43bc5ad3ddf160d507ed43dbd333 | |
| BLAKE2b-256 | 4986344c75a3abc1ce84df6f5e78f81a8b26f1bcc3ce047f68e639c5ba1f0ef1 | 
哈希值 for gnureadline-8.2.10-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | c364bba0a3d7b6a56d87d6821162f335a500f07375f053245af7b3fcf8ee101d | |
| MD5 | c4e02c3098c1d0564339550ccc1ddef2 | |
| BLAKE2b-256 | d1faa0bac79787ba1a935583a4d298a319cc70cae247c3578b4e2cef8bf1324a | 
哈希值 for gnureadline-8.2.10-cp37-cp37m-macosx_10_9_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | c80b9af1531f6cf2bac55407a208c3b8dd1557fc7044c6041f39ea4870ae5823 | |
| MD5 | c98c92f2ecedfd530b602d1a643d432f | |
| BLAKE2b-256 | 62db0db282d7983d51ff20fd9b20bdb55a860eff030defa0530930733c3ef91f | 
哈希值 for gnureadline-8.2.10-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | d300f2dc0f2a810859fee17aca574c313cf576857bb64cfacab42b46b5e5b625 | |
| MD5 | 83a042f4c6b1ffdf9f72cc1731c03e67 | |
| BLAKE2b-256 | e602d330c79278275e6910c843558eb963da9e0eb911324ce82beac0fdade27c | 
哈希值 for gnureadline-8.2.10-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | d52d32927188cb4d1c3c9b24503e82ca856215c9bb978ceb264daf4672b73064 | |
| MD5 | 2968a2151fedb3ddf73ed5bb11b1d286 | |
| BLAKE2b-256 | cae030e7f8966386a067c7defb7eb4a5619d9d3240c6e5777eb4a3e4e4ba1f5d | 
哈希值 for gnureadline-8.2.10-cp36-cp36m-macosx_10_9_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 4d58a53ab7e9ae0eaee2eab94ecb552315638171cdabbd9d5e8ba579780753a0 | |
| MD5 | 6a64b6d553fc4986d5c10f5da41fedc7 | |
| BLAKE2b-256 | 9bbba97e2ba592c89bf120af6c7db71053317828454fa529261c2a2a8ceb02b4 |