CentOS搭建:Python
accttodo 12/31/2024 Linux
目录
参考:
# CentOS搭建:Python
# 一、pyenv:Python多环境管理工具
pyenv
是 python
的 多环境管理
工具,可以安装多个版本的 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
2
3
4
5
# 配置环境变量
vi /etc/profile.d/pyenv.sh
1
2
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
2
3
4
# 配置生效
source /etc/profile.d/pyenv.sh
# 查看环境变量
echo $PYENV_ROOT
1
2
3
4
2
3
4
#测试否安装好
pyenv --version
pyenv install --list
1
2
3
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
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
2
3
4
5
6
7
8
9
10
# 在线安装指定版本号的python
pyenv install 3.10.10
1
2
2
解决国内安装python下载慢的问题:将下载好的相应的安装包Python-3.10.10.tar.xz
放在 $PYENV_ROOT/cache
下,然后执行pyenv install 3.10.10
# 删除Python版本
pyenv uninstall 3.10.10
1
2
2
# 设置全局版本,即系统使用的将是此版本
pyenv global 3.10.10
# 当前目录下的使用版本,有点类似virtualenv
pyenv local 3.10.10
1
2
3
4
2
3
4
# 使用 pyenv-virtualenv
管理虚拟环境
# 创建虚拟环境
将创建一个名为vpDify-3.10.10
的虚拟环境,并且将 python 3.10.10
对应的bin
和lib
复制到该环境中。当该虚拟环境被激活后,所有的python
操作都只在该环境中进行,从而和其它python
内容隔离。 pyenv-virtualenv
支持自动激活和退出虚拟环境。
# 创建名为`vpDify-3.10.10`的虚拟环境
pyenv virtualenv 3.10.10 vpDify-3.10.10
1
2
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
2
3
4
5
6
7
8
9
10
- 检查当前是否处于某个
virtualenv
虚拟环境:
echo $VIRTUAL_ENV
1
输出了虚拟环境的路径,则处于该虚拟环境中,如果没有输出或输出为空,则可能不在虚拟环境中。
- 在虚拟环境中设置环境变量
virtualenv
本身并不直接提供设置虚拟环境专属环境变量的命令。但可以通过以下几种方式实现类似的效果:
- 激活虚拟环境后手动设置:在激活虚拟环境后,可以在 shell 中手动设置环境变量。这些环境变量将只在该虚拟环境激活时有效,当退出虚拟环境时,它们将不再可用。例如:
export MY_VAR="some_value"
。 - 自定义 shell 命令或钩子:使用 Shell 函数和别名,在 shell 配置文件中定义一个函数来激活虚拟环境,并在该函数中加载和卸载环境变量。然后,为函数设置别名,以便简化环境切换的命令,具体如下。
# 配置环境变量
vi /etc/profile.d/pyenv.sh
1
2
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
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
2
3
4
# 别名函数:激活虚拟环境
activate <venv-name>
# 别名函数:退出虚拟环境
deactivate
1
2
3
4
2
3
4