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