Mac或者linux系统自动加载python tab补全功能

  由于mac OS属于类unix系统,因此基本和linux系统使用相差不大,只是用户登录时自动执行环境变量文件的区别python

mac系统:linux

ShanedeMBP:login_api shane$ vi ~/.bash_profile

linux系统:shell

[root@localhost ~]# ls -a .bash*
.bash_history  .bash_logout  .bash_profile  .bashrc

linux中有bash_profile,bashrc,如下是区别:api


 

/etc/profile:此文件为系统的每一个用户设置环境信息,当用户第一次登陆时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.bash

/etc/bashrc:为每个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.spa

~/.bash_profile:每一个用户均可使用该文件输入专用于本身使用的shell信息,当用户登陆时,该
文件仅仅执行一次!默认状况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登陆时以及每次打开新的shell时,该文件被读取
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件. 
另外,/etc/profile中设定的变量(全局)的能够做用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
~/.bash_profile 是交互式、login 方式进入 bash 运行的
~/.bashrc 是交互式 non-login 方式进入 bash 运行的
一般两者设置大体相同,因此一般前者会调用后者。unix


 

写一个tab.py,Code:code

import sys
import readline
import rlcompleter

if sys.platform == 'darwin' and sys.version_info[0] == 2:
    readline.parse_and_bind("bind ^I rl_complete")
else:
    readline.parse_and_bind("tab: complete")

 

而后在.bash_profile文件中追加一行便可。orm

export PYTHONSTARTUP=/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/tab.py

 

 source下.bash_profile文件,便可自动补全。blog

另外,tab.py存放路径,可经过python中的sys模块查询:

import sys
print(sys.path)

 

执行结果:

>>> import sys
>>> print(sys.path)
['', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python35.zip', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/plat-darwin', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages']
>>> 

 

通常存放于带site-packages字符的目录。

相关文章
相关标签/搜索