python虚拟环境pyenv,venv

本文以下内容,均在Windows操作系统中完成

目录

1.pyenv

1.1 安装

1.2 管理Python版本

1.3 虚拟环境管理:

1.4 工作原理

2.venv

2.1 简介

2.2 原理

2.3 使用

创建一个新的虚拟环境:

激活虚拟环境:

安装依赖库(包):

移除依赖库(包):

运行Python程序:

退出虚拟环境:

删除虚拟环境:

​编辑

2.4 虚拟环境主机间移植:

2.5 生产环境下python虚拟环境项目开机自启配置

创建批处理文件

使用任务计划程序设置开机自启动

为每个项目重复上述步骤

3.常用虚拟环境管理工具

参考文章


1.pyenv

pyenv是一个流行的工具,它允许用户在同一系统中管理和切换多个Python版本

什么是pyenv-win: 是一个在windows系统上管理python版本的工具。它是pyenv的windows版本,旨在提供类似于unix/linux系统上的pyenv功能。

1.1 安装

参考:

python多环境管理工具——pyenv-win安装与使用教程-CSDN博客

1.2 管理Python版本

pyenv提供了一系列命令来管理Python版本:

  • pyenv install --list:查看pyenv-win支持的python版本列表:

  • pyenv install <version>:安装指定版本的Python,只用输入版本号。

  • pyenv versions:列出所有已安装的Python版本。

  • pyenv global <version>:设置全局Python版本,只用输入版本号。

    设置完成后,系统默认的Python版本就会是.

  • pyenv local <version>:为当前目录设置Python版本,只用输入版本号。

    你也可以为单个项目设置一个特定的 Python 版本。只需在项目的根目录中运行 pyenv local <version>,这将创建一个 .python-version 文件,其中指定了该目录下应使用的 Python 版本。

  • pyenv shell <version>:临时切换到指定版本的Python,只用输入版本号。

1.3 虚拟环境管理:

pyenv还可以配合pyenv-virtualenv插件来管理虚拟环境:

要安装pyenv-virtualenv插件,可以运行以下命令:

git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
  • pyenv virtualenv <version> <env_name>:创建一个虚拟环境。

  • pyenv activate <env_name>:激活虚拟环境。

  • pyenv deactivate:退出虚拟环境。

  • pyenv uninstall <env_name>:删除虚拟环境。

1.4 工作原理

pyenv通过修改环境变量和使用shims(垫片)机制来管理Python版本和虚拟环境:

Shims是pyenv创建的一组可执行文件,它们位于~/.pyenv/shims目录下,用于拦截Python命令并将其重定向到正确的Python解释器。当设置了一个Python版本或虚拟环境时,pyenv会更新shims路径,确保在执行Python命令时会首先查找到正确的版本。

2.venv

2.1 简介

venv是Python自带的虚拟环境管理工具,venv工具只能在Python 3.3及以上版本中使用。在Python 3.3之前,Python自带的虚拟环境管理工具是virtualenv。

2.2 原理

venv(Python虚拟环境)的原理基于Python的可执行文件和库的隔离。当你创建一个虚拟环境时,Python会在指定的目录中复制或链接一套新的解释器和库的副本。这个副本是独立的,与系统上的其他Python安装互不干扰。以下是venv工作原理的详细解释:

1.解释器副本:venv会在指定的目录中创建一个Python解释器的副本。这个副本是从系统Python解释器派生出来的,但它运行在隔离的环境中。当你激活虚拟环境时,这个副本就会被用作当前会话的Python解释器。

2.库隔离:venv还会创建一个独立的site-packages目录,这是Python存放第三方库的地方。在虚拟环境中安装的任何库都会被放置在这个目录下,而不会影响到系统或其他虚拟环境中的site-packages目录。

3.激活与停用:通过特定的命令(如source venv/bin/activate),venv会修改当前shell的环境变量,使得Python解释器和site-packages目录指向虚拟环境的副本。当你退出虚拟环境时(使用deactivate命令),环境变量会恢复到激活前的状态。

4.依赖管理:由于每个虚拟环境都有自己的site-packages目录,你可以在不同的虚拟环境中安装不同版本的库,而不会产生版本冲突。这对于开发和测试不同的项目非常有用,因为每个项目都可以有自己的依赖集。

5.项目隔离:venv允许你为每个项目创建一个独立的环境,这样你就可以为每个项目配置不同的Python版本和库。这有助于保持项目的独立性,并简化了项目的部署和迁移。

2.3 使用

在Windows中,虚拟环境工具通常已经包含在Python安装中,无需额外安装。

打开命令提示符(CMD)或PowerShell。

然后进入到你希望创建虚拟环境的目录。

创建一个新的虚拟环境:

python -m venv my_env

这将在当前目录下创建一个名为myenv的虚拟环境。初始状态下虚拟环境是空的,里面没有任何包或依赖库。

激活虚拟环境:

my_env\Scripts\activate

在创建虚拟环境后,需要激活虚拟环境才能使用它。激活虚拟环境会将该虚拟环境的Python解释器添加到系统的环境变量中,使得在命令行中运行python命令时,默认使用虚拟环境中的解释器。

安装依赖库(包):

(my_env) C:\> pip install <requests>

移除依赖库(包):

pip uninstall <requests>

运行Python程序:

(my_env) C:\> python myscript.py

退出虚拟环境:

(my_env) C:\> deactivate

删除虚拟环境:

python -m venv --clear  你的虚拟环境路径

或者通过文件资源管理器直接删除虚拟环境的文件夹。

使用python -m venv --clear 你的虚拟环境路径命令可以更彻底地清除虚拟环境,并保留虚拟环境的配置,以便在需要时重新使用。但是,如果你确定不再需要虚拟环境中的任何内容,直接删除虚拟环境目录也是一个有效的方法。

2.4 虚拟环境主机间移植:

拷贝虚拟环境文件夹

在Windows中,你可以使用文件资源管理器或命令提示符(CMD)来复制虚拟环境文件夹。假设虚拟环境文件夹名为myenv,源主机上的路径为C:\path\to\source\myenv,目标主机上的路径为C:\path\to\destination

  • 打开源主机的文件资源管理器。

  • 导航到C:\path\to\source

  • 找到myenv文件夹,右键点击并选择“复制”。

  • 导航到目标路径C:\path\to\destination,右键点击空白处,选择“粘贴”。

使用命令提示符(CMD):

xcopy C:\path\to\source\myenv C:\path\to\destination\myenv /E /I

这里,/E 参数表示复制所有子目录(包括空目录),/I 参数如果目标不存在则创建目录。

激活虚拟环境

打开命令提示符或PowerShell,然后执行以下步骤:

切换到目标主机上虚拟环境所在的目录:

cd C:\path\to\destination\myenv

激活虚拟环境:

python.exe -m venv bin\activate

请注意,如果你的Python安装包含了Scripts文件夹(这在Windows的某些Python版本中是常见的),你可能需要使用Scripts文件夹中的activate脚本来激活虚拟环境:

C:\path\to\destination\myenv\Scripts\activate.bat

确保在目标主机上安装了与源主机相同版本的Python,以避免兼容性问题。如果目标主机上尚未安装Python,你可以从Python官方网站下载并安装。

2.5 生产环境下python虚拟环境项目开机自启配置

在Windows操作系统中,设置多个项目在开机时自启动,并且每个项目使用不同的Python虚拟环境,可以通过创建批处理(batch)文件和使用任务计划程序(Task Scheduler)来实现。以下是具体步骤:

创建批处理文件

对于每个项目,创建一个批处理文件,例如start_project1.bat,用于启动project1。在批处理文件中,需要指定虚拟环境的路径,并激活虚拟环境。假设project1的虚拟环境路径为C:\path\to\project1\venv,项目的入口文件为main.py,批处理文件内容如下:

@echo off
REM 激活虚拟环境
call C:\path\to\project1\venv\Scripts\activate.bat

REM 运行项目
python C:\path\to\project1\main.py

确保将批处理文件保存为.bat扩展名。

使用任务计划程序设置开机自启动

  1. 打开任务计划程序。可以通过在“开始”菜单搜索“任务计划程序”来找到并打开它。

  2. 在任务计划程序中,选择“创建基本任务...”。

  3. 给任务起一个名称,例如“Project1 AutoStart”,并添加描述,然后点击“下一步”。

  4. 选择“当我登录时”作为触发器,然后点击“下一步”。

  5. 选择“启动程序”作为操作,然后点击“下一步”。

  6. 在“程序/脚本”框中,浏览并选择之前创建的批处理文件start_project1.bat。然后点击“下一步”。

  7. 审核设置,如果没有问题,点击“完成”。

为每个项目重复上述步骤

对于每个需要在开机时自启动的项目,重复上述步骤,创建对应的批处理文件和任务。

通过以上步骤,你可以为每个项目创建一个启动脚本(批处理文件),并通过任务计划程序设置它们在Windows启动时自动运行。这样,每次开机时,系统会自动启动相应的项目,并使用正确的虚拟环境。需要注意的是,任务计划程序的设置可能需要管理员权限,确保在创建任务时具有相应的权限。

总结:

pyenv和venv可以配合使用,以便更好地管理Python环境。pyenv负责版本管理,而venv负责项目级别的环境隔离和依赖管理。

3.常用虚拟环境管理工具

venv:这是Python官方提供的工具,从Python 3.3版本开始内置于Python中。使用venv非常简单,你只需要在命令行中输入python -m venv 环境名就可以创建一个新的虚拟环境。激活虚拟环境的命令也很简单,Windows系统下使用环境名\Scripts\activate,而macOS和Linux系统下使用source 环境名/bin/activate。这样,你就可以在这个虚拟环境中安装和使用Python包,而不会影响其他项目或全局环境。

virtualenv:这是一个第三方工具,它兼容Python 2和Python 3。virtualenv的功能比venv更丰富,它不仅可以创建虚拟环境,还可以指定使用哪个Python解释器版本来创建环境。此外,virtualenv还允许你复制一个已存在的环境来创建新的虚拟环境,这对于需要多个项目共享相同环境配置的情况非常有用。

conda:conda是一个更为全面的包管理工具和虚拟环境管理器,它不仅适用于Python,还可以用于其他编程语言。通过conda,你可以轻松地安装、更新和管理包和环境。conda的一个特点是它会自动解决包与包之间的依赖关系,这意味着当你安装一个新的包时,conda会自动为你安装所需的所有依赖包。此外,conda还可以帮助你管理不同版本的包和环境,使得在不同项目之间切换变得非常方便。

pyenv:pyenv专注于管理多个Python版本。使用pyenv,你可以在同一台计算机上安装多个Python版本,并且可以轻松地在这些版本之间切换。这对于需要使用特定Python版本的项目来说非常有用。pyenv还允许你为每个项目设置特定的Python版本,确保项目的兼容性和稳定性。


参考文章

Python虚拟环境使用教程(以虚拟环境管理工具venv为例)(virtualenv、venv、pyenv、virtualenvwrapper、conda不同管理工具对比)-CSDN博客

  • 37
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值