标准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 |