zoukankan      html  css  js  c++  java
  • Mac或者linux系统自动加载python tab补全功能

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

    mac系统:

    ShanedeMBP:login_api shane$ vi ~/.bash_profile

    linux系统:

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

    linux中有bash_profile,bashrc,以下是区别:


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

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

    ~/.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 运行的
    通常二者设置大致相同,所以通常前者会调用后者。


    写一个tab.py,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文件中追加一行即可。

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

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

    另外,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字符的目录。

  • 相关阅读:
    300. Longest Increasing Subsequence_算法有误
    LIS (DP)_代码
    pthread_detach pthread_create实例
    pthread_detach
    DP(动态规划)
    括号匹配(二)
    gdb调试遇到的问题
    matplotlib 显示中文
    一个奇怪的编码 big5-hkscs
    python 重载 __hash__ __eq__
  • 原文地址:https://www.cnblogs.com/ccorz/p/5481472.html
Copyright © 2011-2022 走看看