📜  Python 版本太多 pip 包位置 - Python (1)

📅  最后修改于: 2023-12-03 15:19:10.970000             🧑  作者: Mango

Python 版本太多 pip 包位置

在使用 Python 开发过程中,常常会遇到多版本 Python 并存的情况。由此衍生出的一个问题是,每个 Python 版本里使用的 pip 包管理工具与对应的第三方库安装位置都可能不同。这里我们总结一些关于 pip 包位置的情况,帮助大家更好地理解和管理自己的开发环境。

1. pip 包的默认安装位置

Python 默认的 pip 包安装位置是在 Python 安装路径下的 Lib/site-packages/ 目录下。不同的 Python 版本安装路径不同,所以这个位置也会随之改变。

2. 使用 virtualenv 管理虚拟环境

在多版本 Python 并存的情况下,我们可以使用虚拟环境来区分各个 Python 版本的 pip 包位置。其中,virtualenv 是一个常用的 Python 虚拟环境管理工具。通过 virtualenv 可以创建多个独立的 Python 虚拟环境,每个虚拟环境里都有自己的 pip 包管理工具和第三方库。

创建虚拟环境

创建虚拟环境的命令如下:

$ pip install virtualenv
$ virtualenv myenv

其中 myenv 为虚拟环境名字,可以自由命名。

进入虚拟环境

创建好虚拟环境之后,我们需要进入该环境,执行命令:

$ myenv\Scripts\activate
安装 pip 包

进入虚拟环境后,使用 pip 安装包的命令和平时一样。此时安装的包将被存放在当前虚拟环境下的 Lib/site-packages/ 目录下。

退出虚拟环境

在虚拟环境中,退出环境的命令为:

$ deactivate
3. 使用 pyenv 管理多版本 Python 环境

除了使用虚拟环境,我们还可以使用多版本 Python 环境管理工具 pyenv 来管理多个 Python 版本。

安装 pyenv

安装 pyenv 的方式有多种,最简单的方式是通过 GitHub Clone 安装,执行以下命令安装:

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
安装 Python 版本

使用 pyenv 安装 Python 版本时,需要预先安装对应 Python 版本的必要依赖库。常用的依赖库有 libbz2-dev、libreadline-dev、libsqlite3-dev、libssl-dev、 zlib1g-dev 等,可以直接安装:

$ sudo apt-get update
$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
     libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
     xz-utils tk-dev libffi-dev liblzma-dev python-openssl git

然后执行命令安装 Python 版本:

$ pyenv install <version>

其中 为需要安装的 Python 版本号,例如 pyenv install 3.8.10

切换 Python 版本

安装完多个 Python 版本后,需要使用的 Python 版本可以通过以下命令进行切换:

$ pyenv global <version>
安装 pip 包

切换到对应的 Python 版本后,使用 pip 安装包的命令和平时一样。此时安装的包将被存放在当前 Python 版本下的 Lib/site-packages/ 目录下。

总结

本文介绍了在多版本 Python 并存的情况下如何管理 pip 包位置,包括使用虚拟环境和 pyenv 管理多版本 Python 环境。通过这些方法,我们可以更好地管理自己的开发环境,方便使用不同版本的 Python 和不同版本的 pip 包。