专栏首页python3多版本Python共存,以及pip对应

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

多版本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命令来自己查看帮助信息。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python的tab自动补全

       新手学习python,经常要使用python命令行查找一些不熟悉的使用方法等等,但是python命令行下没有自带tab补全的功能,着实让我这新手菜了......

    py3study
  • 在Ubuntu中实现python按tab

        刚学习python,其实一切都很好接受,因为有过C语言的基础,感觉一切都来得那么自然,python极其精简的语法,让我真心是爱上这种语言!相信往后pyt...

    py3study
  • python sys模块详解

      sys.argv           命令行参数List,第一个元素是程序本身路径 sys.modules.keys() 返回所有已经导入的模块列表 ...

    py3study
  • python的tab自动补全

       新手学习python,经常要使用python命令行查找一些不熟悉的使用方法等等,但是python命令行下没有自带tab补全的功能,着实让我这新手菜了......

    py3study
  • mac python tab 补全

    代码有了,我们还需要将脚本放到python指定的目录下,可以使用sys.path来查看一下

    py3study
  • Python 中的tab补全

    1.准备一个Python脚本 cat > tab.py <<EOF #!/usr/local/bin/python # python tab file imp...

    py3study
  • python sys模块详解

      sys.argv           命令行参数List,第一个元素是程序本身路径 sys.modules.keys() 返回所有已经导入的模块列表 ...

    py3study
  • 在Ubuntu中实现python按tab

        刚学习python,其实一切都很好接受,因为有过C语言的基础,感觉一切都来得那么自然,python极其精简的语法,让我真心是爱上这种语言!相信往后pyt...

    py3study
  • python tab键补齐

    代码有了,我们还需要将脚本放到python指定的目录下,可以使用sys.path来查看一下

    py3study
  • python3模块: sys

    程序员同行者

扫码关注云+社区

领取腾讯云代金券