📅  最后修改于: 2023-12-03 15:19:10.970000             🧑  作者: Mango
在使用 Python 开发过程中,常常会遇到多版本 Python 并存的情况。由此衍生出的一个问题是,每个 Python 版本里使用的 pip 包管理工具与对应的第三方库安装位置都可能不同。这里我们总结一些关于 pip 包位置的情况,帮助大家更好地理解和管理自己的开发环境。
Python 默认的 pip 包安装位置是在 Python 安装路径下的 Lib/site-packages/
目录下。不同的 Python 版本安装路径不同,所以这个位置也会随之改变。
在多版本 Python 并存的情况下,我们可以使用虚拟环境来区分各个 Python 版本的 pip 包位置。其中,virtualenv 是一个常用的 Python 虚拟环境管理工具。通过 virtualenv 可以创建多个独立的 Python 虚拟环境,每个虚拟环境里都有自己的 pip 包管理工具和第三方库。
创建虚拟环境的命令如下:
$ pip install virtualenv
$ virtualenv myenv
其中 myenv 为虚拟环境名字,可以自由命名。
创建好虚拟环境之后,我们需要进入该环境,执行命令:
$ myenv\Scripts\activate
进入虚拟环境后,使用 pip 安装包的命令和平时一样。此时安装的包将被存放在当前虚拟环境下的 Lib/site-packages/
目录下。
在虚拟环境中,退出环境的命令为:
$ deactivate
除了使用虚拟环境,我们还可以使用多版本 Python 环境管理工具 pyenv 来管理多个 Python 版本。
安装 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
使用 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>
其中 pyenv install 3.8.10
。
安装完多个 Python 版本后,需要使用的 Python 版本可以通过以下命令进行切换:
$ pyenv global <version>
切换到对应的 Python 版本后,使用 pip 安装包的命令和平时一样。此时安装的包将被存放在当前 Python 版本下的 Lib/site-packages/
目录下。
本文介绍了在多版本 Python 并存的情况下如何管理 pip 包位置,包括使用虚拟环境和 pyenv 管理多版本 Python 环境。通过这些方法,我们可以更好地管理自己的开发环境,方便使用不同版本的 Python 和不同版本的 pip 包。