在Ubuntu 22.04.3中使用pyenv和pipenv管理Python版本和项目虚拟环境,并在VS Code中配置pipenv
前言
每次放假的时候,在公司和家里电脑切换使用,存在环境问题,远程比较卡,在Virtual box
中安装了一个Ubuntu22.04.3
系统,需要使用的时候导出,然后导入到另一个电脑即可。
安装步骤
在 Ubuntu 22.04.3 上安装 Pyenv 的步骤如下:
-
安装依赖:
在开始安装之前,确保系统已安装以下依赖:sudo apt update sudo apt install git curl build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git
-
安装 Pyenv:
利用 curl 安装 Pyenv。在终端中执行以下命令:curl https://pyenv.run | bash
-
添加 Pyenv 到 Shell 配置文件:
安装完成会后有提示,打开你的 shell 配置文件,比如.bashrc
、.zshrc
或者其他自己使用的 shell 的配置文件,并在文件末尾添加以下行:export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init --path)" # eval "$(pyenv virtualenv-init -)" 这个我没添加,我用pipenv来管理虚拟环境
然后执行以下命令使配置生效:
source ~/.bashrc # 或者 source ~/.zshrc,取决于你的 shell
-
验证安装:
执行以下命令验证 Pyenv 是否安装成功:pyenv --version
如果正确安装,将显示 Pyenv 的版本信息。
-
安装 Python:
使用 Pyenv 安装你需要的 Python 版本。例如,安装 Python 3.8.10:pyenv install 3.8.10
安装完成后,设置默认 Python 版本:
pyenv global 3.8.10
这样就完成了 Pyenv 的安装和 Python 版本的设置。
现在可以使用 Pyenv 来管理 Python 版本,方便地切换不同版本的 Python。
安装pipenv
安装 pipenv
的步骤如下:
-
安装 pipenv:
打开终端(命令行界面)并运行以下命令:
# pip install pipenv 国内环境执行太慢用下面的指定镜像执行 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pipenv
这将使用
pip
安装pipenv
包。 -
验证安装:
安装完成后,你可以运行以下命令来验证
pipenv
是否成功安装:pipenv --version
如果一切顺利,你应该看到
pipenv
的版本信息。
现在,你已经成功安装了 pipenv
。你可以使用 pipenv
来创建和管理 Python 项目的虚拟环境,以及安装项目的依赖。例如,你可以使用以下命令创建一个新的虚拟环境并安装依赖:
pipenv install
这将根据项目中的 Pipfile
文件安装所有必需的依赖项。
在vscode中配置pipenv环境
- 之前项目用的pipenv管理的,以上环境配置完成之后,把项目下载下来
- 在项目根目录执行pipenv install
- 箭头指向的是系统默认python版本,安装完成后会显示上面安装python3.8.10的虚拟位置,点击箭头指向的
3.10.12 64-bit
切换python版本 - /home/dennis/.local/share/virtualenvs/ip_python-BOqXR_MO 去这个虚拟环境下面有目录,最终在添加入下图,每个人的路径不一样,添加自己安装完成提示的目录
- 完成之后,调试代码会选择这个环境进行调试,运行代码的话可以用pipenv run python main.py,也可以执行pipenv shell,进入执行虚拟环境来执行代码 python main.py
总结
pyenv
和 pipenv
是两个不同的工具,分别用于管理 Python 版本和 Python 项目依赖。这两者之间并没有直接的结合关系。下面分别介绍它们的作用和好处:
-
pyenv:
-
管理 Python 版本:
pyenv
是一个用于管理多个 Python 版本的工具。通过pyenv
,你可以轻松地在同一台机器上切换不同版本的 Python,以适应不同项目的需求。 -
独立性: 每个项目可以有自己的 Python 版本,而不会影响全局的 Python 环境。这在项目需要不同 Python 版本的情况下非常有用。
-
全局和局部配置:
pyenv
支持全局 Python 版本的设置,也支持在项目级别进行配置。 -
pipenv:
-
虚拟环境管理:
pipenv
是一个用于管理 Python 项目的依赖和虚拟环境的工具。它使用Pipfile
和Pipfile.lock
来定义项目的依赖关系。 -
自动化:
pipenv
可以自动创建和管理虚拟环境,同时记录项目的依赖版本。这使得在不同环境之间共享项目变得更加简单。 -
清晰的依赖关系:
pipenv
通过清晰的依赖关系图和版本锁定,确保了项目的依赖关系的可重现性。
结合使用 pyenv
和 pipenv
的好处在于,你可以在项目级别使用 pipenv
管理依赖和虚拟环境,而同时使用 pyenv
管理全局 Python 版本。这样,你可以确保每个项目都有自己的依赖和虚拟环境,而全局 Python 版本可以根据需要灵活切换。这种组合使用的场景通常在需要同时处理多个 Python 项目,而这些项目可能有不同的 Python 版本和依赖的情况下非常有用。
作者:莫忘初心丶