CentOS搭建:Python

12/31/2024 Linux

目录


参考:

  • 链接1:

# CentOS搭建:Python

# 一、pyenv:Python多环境管理工具

pyenvpython多环境管理 工具,可以安装多个版本的 python,并为 全局单个应用 设置指定版本。

# 环境依赖

软件/系统 版本 包名 备注
Linux CentOS 7.x pyenv-2.4.5.tar.gz (opens new window) 下载地址 (opens new window)
pyenv-virtualenv-1.2.3.tar.gz (opens new window) 下载地址 (opens new window)

# 安装配置

# 解压缩包
tar -zxvf /soft/pyenv-2.4.5.tar.gz -C /soft
tar -zxvf /soft/pyenv-virtualenv-1.2.3.tar.gz -C /soft
# 将pyenv-virtualenv移动至pyenv的plugins路径下
cp -r /soft/pyenv-virtualenv-1.2.3 /soft/pyenv-2.4.5/plugins/
1
2
3
4
5
# 配置环境变量
vi /etc/profile.d/pyenv.sh
1
2
export PYENV_ROOT="/soft/pyenv-2.4.5"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
1
2
3
4
# 配置生效
source /etc/profile.d/pyenv.sh
# 查看环境变量
echo $PYENV_ROOT
1
2
3
4
#测试否安装好
pyenv --version
pyenv install --list
1
2
3

# 常用命令

# 更新pyenv后,刷新已安装版本
pyenv rehash   
# 查看已经安装好的版本,带*号的为当前使用的版本 
pyenv versions 
# 查看可安装的python版本 
pyenv install --list  
# 安装python 
pyenv install <version>   
# 卸载python 
pyenv uninstall <version>   
1
2
3
4
5
6
7
8
9
10

# 安装Python

# 更新
yum -y update
# 安装依赖
yum -y install gcc gcc-c++ make 
yum -y install zlib-devel bzip2 bzip2-libs bzip2-devel xz-devel patch
yum -y install openssl openssl-static openssl-devel 
yum -y install readline readline-static readline-devel 
yum -y install ncurses-devel tk-devel 
yum -y install libpcap-devel libffi-devel liblzma-devel
yum -y install sqlite-devel gdbm-devel db4-devel 
1
2
3
4
5
6
7
8
9
10
# 在线安装指定版本号的python
pyenv install 3.10.10
1
2

解决国内安装python下载慢的问题:将下载好的相应的安装包Python-3.10.10.tar.xz放在 $PYENV_ROOT/cache下,然后执行pyenv install 3.10.10

# 删除Python版本
pyenv uninstall 3.10.10
1
2
# 设置全局版本,即系统使用的将是此版本
pyenv global 3.10.10
# 当前目录下的使用版本,有点类似virtualenv
pyenv local 3.10.10
1
2
3
4

# 使用 pyenv-virtualenv 管理虚拟环境

# 创建虚拟环境

将创建一个名为vpDify-3.10.10的虚拟环境,并且将 python 3.10.10 对应的binlib复制到该环境中。当该虚拟环境被激活后,所有的python 操作都只在该环境中进行,从而和其它python内容隔离。 pyenv-virtualenv 支持自动激活和退出虚拟环境。

# 创建名为`vpDify-3.10.10`的虚拟环境
pyenv virtualenv 3.10.10 vpDify-3.10.10
1
2

# 常用管理命令

pyenv-virtualenv 用来隔离各个项目的依赖文件,常用命令包括:

# 创建虚拟环境
pyenv virtualenv [version] <venv-name>                       
# 激活虚拟环境
pyenv activate <venv-name>                                   
# 退出虚拟环境
pyenv deactivate <venv-name>   
# 列出当前所有的虚拟环境
pyenv virtualenvs
# 删除虚拟环境
pyenv virtualenv-delete <folder_name>
1
2
3
4
5
6
7
8
9
10
  • 检查当前是否处于某个 virtualenv 虚拟环境:
echo $VIRTUAL_ENV
1

输出了虚拟环境的路径,则处于该虚拟环境中,如果没有输出或输出为空,则可能不在虚拟环境中。

  • 在虚拟环境中设置环境变量

virtualenv 本身并不直接提供设置虚拟环境专属环境变量的命令。但可以通过以下几种方式实现类似的效果:

  1. 激活虚拟环境后手动设置:在激活虚拟环境后,可以在 shell 中手动设置环境变量。这些环境变量将只在该虚拟环境激活时有效,当退出虚拟环境时,它们将不再可用。例如:export MY_VAR="some_value"
  2. 自定义 shell 命令或钩子:使用 Shell 函数和别名,在 shell 配置文件中定义一个函数来激活虚拟环境,并在该函数中加载和卸载环境变量。然后,为函数设置别名,以便简化环境切换的命令,具体如下。
# 配置环境变量
vi /etc/profile.d/pyenv.sh
1
2
# beg:20240703
# 激活虚拟环境
function pyenv_activate() {
    # 先停用当前的虚拟环境(如果有的话)
    if [[ -n "$PYENV_VIRTUAL_ENV" ]]; then
        pyenv deactivate
    fi

    # 激活新的虚拟环境
    pyenv activate "$1"

    # 根据项目需要设置环境变量
    if [[ "$1" == "vpDify-3.10.10" ]]; then
        # poetry
        export POETRY_HOME="/root/.local/share/pipx/venvs/poetry"
        export PATH="$PATH:$POETRY_HOME/bin"
        # 添加其他环境变量
    elif [[ "$1" == "anotherenv" ]]; then
        export ANOTHER_ENV_VAR="another_value"
        # 添加其他环境变量
    fi
}
# 退出虚拟环境
function pyenv_deactivate() {
    # 卸载环境变量
    export PATH=$(echo $PATH | sed -e "s;:$POETRY_HOME/bin;;" -e "s;$POETRY_HOME/bin:;;" -e "s;$POETRY_HOME/bin;;")
    unset POETRY_HOME
    # 卸载其他环境变量
    unset ANOTHER_ENV_VAR

    # 停用虚拟环境
    pyenv deactivate
}
# 别名
alias activate="pyenv_activate"
alias deactivate="pyenv_deactivate"
# end.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 配置生效
source /etc/profile.d/pyenv.sh
# 查看环境变量
echo $POETRY_HOME
1
2
3
4
# 别名函数:激活虚拟环境
activate <venv-name>                                   
# 别名函数:退出虚拟环境
deactivate   
1
2
3
4
上次更新时间: 9/25/2024, 1:19:15 AM