Centos下管理Python多环境

2023/12/29 15:11 下午 posted in  Python

在 CentOS 系统上管理多个 Python 版本,通常有几种方法可以选择:

1. 使用系统包管理器

CentOS 的包管理器(如 yumdnf)可能提供了不同版本的 Python。这些版本可以安装在不同的路径中,例如 /usr/bin/python3.6/usr/bin/python3.7 等。要安装特定版本的 Python,您可以使用类似以下的命令:

sudo yum install python36

这样安装的 Python 版本可以通过指定完整路径来使用。

2. 编译安装

您可以从源代码编译安装不同版本的 Python。这使您可以安装最新版本的 Python,甚至可以在配置编译选项时进行自定义。编译安装通常涉及以下步骤:

  • 下载 Python 源代码。
  • 解压并进入源代码目录。
  • 配置安装选项(指定安装路径等)。
  • 编译并安装。

例如:

wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.xz
tar xvf Python-3.8.0.tar.xz
cd Python-3.8.0
./configure --prefix=/usr/local/python3.8
make
sudo make install

3. 使用 Pyenv

Pyenv 是一个流行的工具,用于在同一系统上管理多个 Python 版本。它允许您轻松切换全局 Python 版本,为每个项目设置本地版本,并支持安装多个版本的 Python。要安装 Pyenv,您可以使用以下命令:

curl https://pyenv.run | bash

安装后,您可以使用 Pyenv 安装特定版本的 Python:

pyenv install 3.8.0

并设置全局或本地(项目级)的 Python 版本:

pyenv global 3.8.0  # 全局
pyenv local 3.8.0   # 本地

4. 使用虚拟环境

无论选择哪种方式安装 Python,强烈建议使用虚拟环境(如 venvvirtualenv)来隔离不同项目的 Python 环境。虚拟环境允许您为每个项目安装不同的库,而不会相互影响。

例如,使用 venv 创建虚拟环境:

python3.8 -m venv myenv
source myenv/bin/activate

注意事项

  • 管理多个 Python 版本可能会变得复杂,特别是在涉及系统路径和库依赖时。请确保了解您的环境配置。
  • 在编译安装 Python 之前,确保已经安装了所有必要的依赖项,如 gccopenssl-develbzip2-devellibffi-devel 等。
  • 使用 Pyenv 和虚拟环境可以显著简化多版本 Python 的管理。

【重点注意】 将 pyenv 添加到您的 shell 加载路径中。

为了确保 pyenv 能够正确工作,您需要在您的 shell 配置文件中添加几行代码,以设置环境变量和初始化 pyenv

您需要编辑您的 ~/.bash_profile(用于登录 shell)和 ~/.bashrc(用于交互式 shell)文件。如果您使用的是其他类型的 shell(如 zsh),则应该编辑相应的配置文件(如 ~/.zshrc)。

  1. 打开 ~/.bash_profile~/.profile 文件(如果 ~/.bash_profile 不存在):

    nano ~/.bash_profile
    

    如果您使用的是 zsh,则打开 ~/.zshrc

    nano ~/.zshrc
    
  2. 在文件的末尾添加以下行:

    export PYENV_ROOT="$HOME/.pyenv"
    [[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
    eval "$(pyenv init -)"
    
  3. 如果您还安装了 pyenv-virtualenv,也需要在 ~/.bashrc 中添加以下行:

    eval "$(pyenv virtualenv-init -)"
    

    对于 zsh 用户,也将这些行添加到 ~/.zshrc

  4. 保存并关闭文件。

  5. 重启您的 shell,或者在当前 shell 中加载新配置:

    source ~/.bash_profile
    

    或对于 zsh 用户:

    source ~/.zshrc
    

完成这些步骤后,pyenv 应该能够正确加载,您可以使用它来管理 Python 版本。如果您在执行这些步骤后仍然遇到问题,请确保您遵循了所有指示,并检查是否有任何拼写或路径错误。

【重点注意】 安装依赖环境

sudo yum groupinstall "Development Tools"
sudo yum install openssl-devel bzip2-devel libffi-devel zlib-devel
sudo yum install ncurses-devel readline-devel sqlite-devel xz-devel