两个不同版本的python,yum安装的路径问题

小虾我使用的是阿里云centos 6.5的服务器,服务器里默认自带的python版本是2.6.6。现在我要用django,就把python升级到2.7.8,然后我写了一个简单的网页,在执行“python manage.py runserver 0.0.0.0:8000”的时候,爆出了一个错误,No module named _sqlite3

于是我就yum install python-sqlite,结果发现这样:

Setting up Install Process
Package python-2.6.6-66.el6_8.x86_64 already installed and latest version
Nothing to do

也就是说2.6.6的版本里已经有了sqlite,但是 2.7.8这里还是没有啊,想问一下各位大虾,如果我还想用yum install的话,应该如何制定把sqlite安装到2.7.8路径?

阅读 5.4k
2 个回答

推荐使用pyenv,pyenv是Python多版本管理工具。尽量不动系统默认的python。


解决依赖

yum -y install git gcc make patch zlib-devel \
gdbm-devel openssl-devel sqlite-devel \
bzip2-devel readline-devel

安装pyenv

  • 新建普通用户

useradd user
  • 进入安装目目录安装

cd /home/user
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
  • 设置环境变量

vim ~/.bash_profile
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
  • 使环境变量生效,推荐重开终端

source ~/.bash_profile

部署python多版本

  • 新建工作目录

mkdir /home/user/python35
  • 安装python35

cd /home/user/python35
pyenv install -v 3.5.2
pip install --upgrade pip
  • 安装django

pip install Django==1.10.2

yum需要工作在 python2.6
系统要变成2.7, 执行以下命令

# 用2.7版本覆盖系统
# [path to python2.7] 你的2.7版本安装路径
ln -sf /[path to python2.7]/bin/python /usr/bin/python
ln -sf /[path to python2.7]/bin/python /usr/bin/python2



# 修复yum
vim /usr/bin/yum

# 修改第一行, 声明yum使用老版本python2.6
#!/usr/bin/python2.6

# 同理修复(若存在): /usr/bin/package-cleanup
推荐问题