centos下安装多版本Python

本文介绍如何利用pyenv实现不同版本Python的共存与管理,包括安装、更新、设置全局版本及确认Python版本的方法,适用于科研环境与多版本需求场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经常遇到这样的情况:

系统自带的Python是2.6,自己需要Python 2.7中的某些特性;
系统自带的Python是2.x,自己需要Python 3.x;
此时需要在系统中安装多个Python,但又不能影响系统自带的Python,即需要实现Python的多版本共存。pyenv就是这样一个Python版本管理器。

安装pyenv

$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ exec $SHELL -l

安装Python
查看可安装的版本
1
$ pyenv install –list
该命令会列出可以用pyenv安装的Python版本,仅列举几个:

2.7.8 # Python 2最新版本
3.4.1 # Python 3最新版本
anaconda-2.0.1 # 支持Python 2.6和2.7
anaconda3-2.0.1 # 支持Python 3.3和3.4
其中形如x.x.x这样的只有版本号的为Python官方版本,其他的形如xxxxx-x.x.x这种既有名称又有版本后的属于“衍生版”或发行版。

安装Python的依赖包
在安装Python时需要首先安装其依赖的其他软件包,已知的一些需要预先安装的库如下。

在CentOS/RHEL/Fedora下:

sudo yum install readline readline-devel readline-static
sudo yum install openssl openssl-devel openssl-static
sudo yum install sqlite-devel
sudo yum install bzip2-devel bzip2-libs

安装指定版本
使用如下命令即可安装python 3.4.1:

$ pyenv install 3.4.1 -v

该命令会从github上下载python的源代码,并解压到/tmp目录下,然后在/tmp中执行编译工作。若依赖包没有安装,则会出现编译错误,需要在安装依赖包后重新执行该命令。

对于科研环境,更推荐安装专为科学计算准备的Anaconda发行版,pyenv install anaconda-2.1.0安装2.x版本,pyenv install anaconda3-2.1.0安装3.x版本;

Anacoda很大,用pyenv下载会比较慢,可以自己到Anaconda官方网站下载,并将下载得到的文件放在~/.pyenv/cache目录下,则pyenv不会重复下载。

更新数据库
安装完成之后需要对数据库进行更新:

$ pyenv rehash

查看当前已安装的python版本

$ pyenv versions
* system (set by /home/seisman/.pyenv/version)
3.4.1

其中的星号表示当前正在使用的是系统自带的python。

设置全局的python版本

$ pyenv global 3.4.1
$ pyenv versions
system
* 3.4.1 (set by /home/seisman/.pyenv/version)

当前全局的python版本已经变成了3.4.1。也可以使用pyenv local或pyenv shell临时改变python版本。

确认python版本

$ python
Python 3.4.1 (default, Sep 10 2014, 17:10:18)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

使用python
输入python即可使用新版本的python;
系统自带的脚本会以/usr/bin/python的方式直接调用老版本的python,因而不会对系统脚本产生影响;
使用pip安装第三方模块时会安装到~/.pyenv/versions/3.4.1下,不会和系统模块发生冲突。
使用pip安装模块后,可能需要执行pyenv rehash更新数据库;

### 如何在 CentOS 7.9 上安装和管理多个版本的 Python #### 使用 Miniconda 或 Anaconda 来管理多版本 Python 环境 为了方便管理和切换不同版本的 Python,推荐使用 Miniconda 或者 Anaconda 工具来创建隔离的工作环境。 通过 `wget` 下载 Miniconda 的最新 Linux 版本脚本并执行安装命令: ```bash wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh bash ~/miniconda.sh -b -p $HOME/miniconda echo 'export PATH="$HOME/miniconda/bin:$PATH"' >> ~/.bashrc source ~/.bashrc ``` 完成上述操作之后就可以利用 conda 命令轻松地创建各种 python 版本的虚拟环境了[^1]。 #### 编译安装特定版本的 Python 并设置为系统默认 如果需要编译安装某个具体版本的 Python,则可以从官方网站获取源码包,并按照如下方式进行配置与构建。考虑到兼容性和性能优化方面的需求,在编译之前应该先设定好相应的预处理器宏定义,比如加入 `-fPIC` 参数用于生成位置无关代码,这对于后续可能涉及到的模块开发特别有用。 ```bash tar xf Python-3.x.x.tgz # 解压下载好的 tarball 文件 cd Python-3.x.x # 进入解压缩后的目录 ./configure --prefix=/usr/local/python3 --enable-shared CFLAGS=-fPIC LDFLAGS=-Wl,-rpath,/usr/local/lib make && make altinstall # 避免覆盖系统的默认解释器 ln -s /usr/local/python3/bin/python3.x /usr/bin/python3.x # 创建软连接以便于调用新版本 ``` 对于某些依赖关系较为复杂的软件来说,直接修改全局路径可能会引起意想不到的问题;因此这里采用了相对保守的做法——即不改变原有 `/usr/bin/python` 指向的同时提供新的可执行文件名供用户选择性调用[^3]。 #### 处理网络镜像源导致的速度慢或无法访问问题 当遇到由于国内网络状况不佳而导致官方仓库响应缓慢甚至完全不可达的情况时,可以通过更换成阿里云或其他更稳定的第三方镜像站点来进行加速。不过需要注意的是,有时即使指定了备用服务器也可能依旧面临同样的错误提示(如 Errno 14)。此时不妨尝试关闭 fastmirror 插件再重试一次更新流程。 编辑 YUM 主配置文件 `/etc/yum.conf` ,找到 `[main]` 节下的 pluginpath 和 plugins 行取消注释并将后者设为 false 即可实现临时停用该功能的效果[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值