如何向 Python shell 添加制表符补全?
-
05-07-2019 - |
题
当使用启动 django 应用程序时 python manage.py shell
, ,我得到一个 InteractiveConsole shell - 我可以使用制表符完成等。
Python 2.5.1 (r251:54863, Apr 15 2008, 22:57:26)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
当刚刚启动 python 解释器时使用 python
, ,它不提供制表符补全功能。
有人可以告诉我 django 正在做什么来给我一个交互式控制台,或者我需要做什么才能在没有 django 应用程序的情况下启动交互式控制台?
解决方案
我可能已经找到了办法。
创建文件.pythonrc
# ~/.pythonrc
# enable syntax completion
try:
import readline
except ImportError:
print("Module readline not available.")
else:
import rlcompleter
readline.parse_and_bind("tab: complete")
然后在.bashrc文件中添加
export PYTHONSTARTUP=~/.pythonrc
这似乎有效。
其他提示
我认为django的功能类似于 https://docs.python.org/library/rlcompleter。 HTML
如果你想拥有一个非常好的互动翻译,请看一下 http://ipython.scipy.org/ 。
为了记录,本教程将对此进行介绍: http://docs.python.org /tutorial/interactive.html
我使用ptpython。 https://github.com/jonathanslenders/ptpython/
ptpython是一个很棒的工具autocomplete shell cmd。 安装ptpython非常简单,使用pip工具pip install ptpython
对于django shell,你应该导入django env,就像这样
导入os
os.environ.setdefault(" DJANGO_SETTINGS_MODULE"," testweb.settings")
相信我,这是最好的方式!!!
看起来python3开箱即用了!
在Python3中,默认情况下启用此功能。我的系统没有安装模块 readline
。我在Manjaro。我没有在其他Linux发行版(primary,ubuntu,mint)上面对这个选项卡完成问题。
在 pip
安装模块后,在导入时,它抛出了以下错误 -
ImportError:libncursesw.so.5:无法打开共享对象文件:没有这样的文件或目录
代码>
为了解决这个问题,我跑了 -
cd / usr / lib
ln -s libncursesw.so libncursesw.so.5
代码>
这解决了导入错误。并且,它还使python repl中的选项卡完成没有任何创建/更改 .pythonrc
和 .bashrc
。
我创建了一个更完美的 .pythonrc.py
,您可能会发现它很有用:
https://gist.github.com/guyskk/6f3522e3d17135b470bf3d982c80cc01
针对 windows10 shell 的修复:
- pip 安装 pyreadline
- pip 安装 ipython[shell]