如何更改 Python 的 help() 调试器命令的默认寻呼机?
How can I change the default pager for Python's help() debugger command?
我目前正在没有管理员权限的服务器 (Ubuntu) 中做一些工作,也没有与管理员联系。在 python 命令行中使用 help(command)
时出现错误。
这是一个例子:
>>> help(someCommand)
/bin/sh: most: command not found
因此,此错误表明当前未安装大多数寻呼机。但是,我正在使用的服务器安装了“更多”和“更少”的寻呼机。那么,如何更改此 python 实用程序的默认寻呼机配置?
您可以创建一个只调用 less
(甚至 more
)的自定义 most
脚本。
步骤为:
- 设置一个名为
most
的脚本,其内容为:
#!/bin/sh
less ${@:1} # wierdess is just "all arguments except argument 0"
- 将该脚本放在您
PATH
上的某个位置
然后 most filename
应该只是 运行 less
在该文件上,并且应该从您的 python 解释器中调用该命令。
老实说,我只会使用 Karl 的方法。
这个很难研究,但我想我找到了。
内置 help
使用标准库 pydoc
模块生成消息(该模块也可用作独立脚本)。在 that 文档中,我们发现:
When printing output to the console, pydoc attempts to paginate the output for easier reading. If the PAGER
environment variable is set, pydoc will use its value as a pagination program.
所以,据推测,这已在您的系统上设置为 most
。假设它不会破坏您系统上的任何其他东西,只需取消设置或更改它即可。 (它仍然没有设置值的页面 - 即使在 Windows 上也是如此。我假设它有一个内置的后备。)
您可以在 the source code 中查看各种寻呼机选项。该函数可以根据需要替换为 return 。例如:
import pydoc
pydoc.getpager = lambda: lambda text: pydoc.pipepager(text, 'less')
我目前正在没有管理员权限的服务器 (Ubuntu) 中做一些工作,也没有与管理员联系。在 python 命令行中使用 help(command)
时出现错误。
这是一个例子:
>>> help(someCommand)
/bin/sh: most: command not found
因此,此错误表明当前未安装大多数寻呼机。但是,我正在使用的服务器安装了“更多”和“更少”的寻呼机。那么,如何更改此 python 实用程序的默认寻呼机配置?
您可以创建一个只调用 less
(甚至 more
)的自定义 most
脚本。
步骤为:
- 设置一个名为
most
的脚本,其内容为:
#!/bin/sh
less ${@:1} # wierdess is just "all arguments except argument 0"
- 将该脚本放在您
PATH
上的某个位置
然后 most filename
应该只是 运行 less
在该文件上,并且应该从您的 python 解释器中调用该命令。
老实说,我只会使用 Karl 的方法。
这个很难研究,但我想我找到了。
内置 help
使用标准库 pydoc
模块生成消息(该模块也可用作独立脚本)。在 that 文档中,我们发现:
When printing output to the console, pydoc attempts to paginate the output for easier reading. If the
PAGER
environment variable is set, pydoc will use its value as a pagination program.
所以,据推测,这已在您的系统上设置为 most
。假设它不会破坏您系统上的任何其他东西,只需取消设置或更改它即可。 (它仍然没有设置值的页面 - 即使在 Windows 上也是如此。我假设它有一个内置的后备。)
您可以在 the source code 中查看各种寻呼机选项。该函数可以根据需要替换为 return 。例如:
import pydoc
pydoc.getpager = lambda: lambda text: pydoc.pipepager(text, 'less')