多版本Python共存,以及pip对应

发布时间:2019-09-05 07:06:52编辑:auto阅读(1484)

    多版本Python共存[支持使用pip安装包] 有时特殊需要会要用到高版本的Python, 但是系统自带的版本又是很多其他工具依赖的, 不能随意更新。 所以就会考虑安装另一个版本的python环境, 然后需要用到这个版本时就在脚本头部指明 #/usr/bin/env python2.7 这样。

    ## 下载要安装的 Python版本源码包(我用的是 2.7 版本)

    wget ‘http://www.python.org/ftp/python/2.7/Python-2.7.tar.bz2′

    ##标准的安装流程, 安装python2.7 到 /usr/local/python2.7 目录:

    tar -xvf Python-2.7.tar.bz2
    cd Python2.7
    ./configure –prefix=/usr/local/python2.7 &&  make && make install

    ## 建立一个 python2.7的链接, 方便调用

    ln -sv /usr/local/python2.7/bin/python2.7 /usr/bin/python2.7

    一般的需求到这一步即可使用 python2.7了。但是如果需要安装其他的包到python2.7, 在使用 easy_install、 pip 等包管理工具安装包时, 还是会装到系统自带版本python的目录。 在python2.7版本下也无法import安装的包。 以下是解决方法:

    ## 接下来安装一些需要的包环境(setuptools, pip)

    wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-20.3.1.tar.gz
    tar -xvf setuptools-20.3.1.tar.gz
    cd setuptools-20.3.1
    python2.7 setup.py install –prefix=/usr/local/python2.7
    wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.1.tar.gz
    tar -xvf pip-8.0.1.tar.gz
    cd pip-8.0.1
    python2.7 setup.py install –prefix=/usr/local/python2.7

    ## 创建一个 pip-2.7 的链接, 方便调用


    ln -sv /usr/local/python2.7/bin/pip-2.7 /usr/bin/pip-2.7

    之后使用 pip-2.7 命令安装的包就会自动装到 /usr/local/python2.7 对应目录下了。 这样安装的包不仅能import, 更重要的是不会出现不同版本的兼容性问题(有些包在不同版本python下是不同的)


    python的tab自动补全



    手动修改方法:1.进入用户宿主目录,建立 .pythonstartup文件

    cd  ~  就是进入宿主目录,然后vim .pythonstartup(这样就创建了文件了,注意前面的点)2.  .pythonstartup内容如下:

    ##############################################

    import sys

    import readline

    import rlcompleter

    import atexit

    import os

    readline.parse_and_bind('tab: complete')

    histfile = os.path.join(os.environ['HOME'], '.pythonhistory')

    try:

        readline.read_history_file(histfile)

    except IOError:

        pass

    atexit.register(readline.write_history_file, histfile)

    del os, histfile, readline, rlcompleter##############################################将这些内容手写到文件中,也可复制粘贴3.最后一步就是添加环境变量到.bashrc文件,执行以下命令即可:echo "export PYTHONSTARTUP=~/.pythonstartup" >> ~/.bashrc

    到此就行了,python就能自动补全了

     



      

    >>> import sys
    >>> sys.
    sys.__class__(              sys.__subclasshook__(       sys.exitfunc(               sys.path_importer_cache
    sys.__delattr__(            sys._clear_type_cache(      sys.flags                   sys.platform
    sys.__dict__                sys._current_frames(        sys.float_info              sys.prefix
    sys.__displayhook__(        sys._getframe(              sys.float_repr_style        sys.ps1
    sys.__doc__                 sys._mercurial              sys.getcheckinterval(       sys.ps2
    sys.__excepthook__(         sys._multiarch              sys.getdefaultencoding(     sys.py3kwarning
    sys.__format__(             sys.api_version             sys.getdlopenflags(         sys.pydebug
    sys.__getattribute__(       sys.argv                    sys.getfilesystemencoding(  sys.setcheckinterval(sys.__hash__(               sys.builtin_module_names    sys.getprofile(             sys.setdlopenflags(sys.__init__(               sys.byteorder               sys.getrecursionlimit(      sys.setprofile(sys.__name__                sys.call_tracing(           sys.getrefcount(            sys.setrecursionlimit(sys.__new__(                sys.callstats(              sys.getsizeof(              sys.settrace(sys.__package__             sys.copyright               sys.gettrace(               sys.stderr
    sys.__reduce__(             sys.displayhook(            sys.hexversion              sys.stdin
    sys.__reduce_ex__(          sys.dont_write_bytecode     sys.long_info               sys.stdout
    sys.__repr__(               sys.exc_clear(              sys.maxint                  sys.subversion
    sys.__setattr__(            sys.exc_info(               sys.maxsize                 sys.version
    sys.__sizeof__(             sys.exc_type                sys.maxunicode              sys.version_info
    sys.__stderr__              sys.excepthook(             sys.meta_path               sys.warnoptions
    sys.__stdin__               sys.exec_prefix             sys.modules                 
    sys.__stdout__              sys.executable              sys.path                    
    sys.__str__(                sys.exit(                   sys.path_hooks

    所有的功能都能很直观的看到,如果想了解具体用法,可以使用help命令来自己查看帮助信息。



关键字