- A+
所属分类:Python
在我们的Linux系统中tab键给我们带来了很大的方便,可以帮助我们自动补全,快速的提高输入速度,提高工作效率,避免并减少命令输入的错误率,所以说tab键还是很有用的,但是在我们系统中Python交互窗口里面却是默认没有tab键的,所以我们自己要进行配置,配置方法如下
1. 编写一个python脚本
- #!/usr/bin/env python
- # python tab file
- import sys
- import readlinereadline
- import rlcompleter
- import atexit
- import os
- # tab completion
- readlinereadline.parse_and_bind('tab: complete')
- # history file
- histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
- try:
- readlinereadline.read_history_file(histfile)
- except IOError:
- pass
- atexit.register(readlinereadline.write_history_file, histfile)
- del os, histfile, readlinereadline, rlcompleter
2. 在Python交互页面查看python模块默认存放位置
- >>> import sys #<== 导入sys模块
- >>> sys.path #<== 查看Python模块存放位置
- ['', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib/python2.7/site-packages', '/usr/lib/python2.7/site-packages/cloud_init-0.7.6-py2.7.egg', '/usr/lib/python2.7/site-packages/pip-9.0.3-py2.7.egg']
说明:当我们调用python模块时,python会从以上的路径中依次寻找对应的模块,如果找不到就会报错,找到将不会继续往下进行。以上的第一个路径为空,表示的是当前所在路径,以上黄色标红路径表示是专门存放第三方的Python模块的,在pytnon2.6版本目录名为dist-packages,只是在2.7以后不同了,所以我们要将tab.py放在该路径下。
3. 将编写的tab.py放到Python默认的模块存放位置
- mv tab.py /usr/lib/python2.7/site-packages
4. 进入python命令行交互界面,测试
- >>> import tab
- >>> import sys
- >>> sys
- sys
- >>> sys.
- sys.__class__( sys.__sizeof__( sys.copyright sys.getfilesystemencoding( sys.prefix
- sys.__delattr__( sys.__stderr__ sys.displayhook( sys.getprofile( sys.ps1
- sys.__dict__ sys.__stdin__ sys.dont_write_bytecode sys.getrecursionlimit( sys.ps2
- sys.__displayhook__( sys.__stdout__ sys.exc_clear( sys.getrefcount( sys.py3kwarning
- sys.__doc__ sys.__str__( sys.exc_info( sys.getsizeof( sys.pydebug
- sys.__excepthook__( sys.__subclasshook__( sys.exc_type sys.gettrace( sys.setcheckinterval(
- sys.__format__( sys._clear_type_cache( sys.excepthook( sys.hexversion sys.setdlopenflags(
- sys.__getattribute__( sys._current_frames( sys.exec_prefix sys.long_info sys.setprofile(
- sys.__hash__( sys._debugmallocstats( sys.executable sys.maxint sys.setrecursionlimit(
- sys.__init__( sys._getframe( sys.exit( sys.maxsize sys.settrace(
- sys.__name__ sys._mercurial sys.exitfunc( sys.maxunicode sys.stderr
- sys.__new__( sys.api_version sys.flags sys.meta_path sys.stdin
- sys.__package__ sys.argv sys.float_info sys.modules sys.stdout
- sys.__reduce__( sys.builtin_module_names sys.float_repr_style sys.path sys.subversion
- sys.__reduce_ex__( sys.byteorder sys.getcheckinterval( sys.path_hooks sys.version
- sys.__repr__( sys.call_tracing( sys.getdefaultencoding( sys.path_importer_cache sys.version_info
- sys.__setattr__( sys.callstats( sys.getdlopenflags( sys.platform sys.warnoptions
- >>> sys.