Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >轻松搞定在Python中构建虚拟环境

轻松搞定在Python中构建虚拟环境

作者头像
科技新语
发布于 2025-01-09 06:40:13
发布于 2025-01-09 06:40:13
39000
代码可运行
举报
运行总次数:0
代码可运行

大多数 Python 新手不知道如何建立一个遵循专业程序员使用的最新标准的开发环境。本教程将教你如何使用业界公认的最佳实践,正确地创建一个完全工作的 Python 开发环境。

虚拟环境

虚拟环境通过创建隔离的环境来帮助我们解决项目的依赖性冲突。这些 "隔离环境 "包含了Python程序员在开发他们的项目时可能需要的所有好东西。

虚拟环境包括一个全新的 Python 二进制文件的副本,以及整个 Python 标准库的独立副本。这就是为什么它可以自己工作。

使用虚拟环境给我们带来以下好处。

  • 我们能够完整地维护我们的本地机器包
  • 我们可以通过一个requirements.txt 文件与其他人共享依赖项
  • 我们可以在专门的服务器上部署Python应用(PythonAnyWhere、Heroku等等)。

对虚拟环境的需求

我在我的项目中使用了许多库。其中有三个网络应用程序开发框架,还有一些我想在将来探索的其他库。这可以作为主要的论据,Python中的严肃项目依赖于其他开发者编写的其他软件包。

如果你是一个Django开发者,我相信你会使用Django rest框架来创建强大的rest API,使用Django Debug Toolbar来收集关于当前请求/响应的各种调试信息,使用Celery来处理实时操作,还有调度,等等。

例如,我的一些项目非常依赖requests 包,而我目前正在开发的一个Django网络应用程序就依赖于2.3.0版本。根据官方文档,在撰写本文时,这个包的最新版本是3.2版。

假设我继续前进,并在我的Ubuntu机器上安装最新版本的库,因为我需要它来做另一个项目。一切似乎都很正常,直到我试图使用我的老项目,该项目在2.3.0版本下运行良好。突然间,一切都坏了。

发生了什么?也许最新版本的Django的API在2.3.0版本后发生了变化?在这一点上,原因并不重要,因为我的老项目已经坏了,不再工作了。

两个项目之间产生了冲突。它们利用了同一个库,但它们需要不同的版本。

不同的软件包可以解决这个问题。让我们看看一些突出的例子。

开始之前

在本教程中,我们将使用Python 3,所以让我们从检查你的Python安装开始。

要做到这一点,打开一个终端--Windows下的cmd/PowerShell--并输入以下命令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bash 代码解读复制代码python --version

Python 3.9.5 # My result

注意:大多数macOS和Linux系统都安装了Python。如果你使用的是Windows,你可以查看Python安装指南

如果你没有得到一个形式为Python 3.x 的结果,有两个选择。

  • 如果这个命令返回的是Python 2.x 版本,你需要使用python3 和本教程。
  • 如果你得到一个Unknown command 的错误,试着运行python3 ,如果你得到另一个错误,请遵循 Python 安装指南

你可以通过检查python3 二进制文件的版本来证明它的存在。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bash 代码解读复制代码python3 --version

Python 3.9.5

注意:如果上面的命令有效,你需要运行python3 而不是python

现在你知道哪个Python命令在你的机器上运行,让我们进入虚拟环境。

内置的venv 模块

让我们使用内置的 Pythonvenv 模块来创建你的第一个虚拟环境。

注意:要使用这个模块,你需要在你的系统中安装 Python 3.3 或更高版本。

要使用venv 创建一个 Python 虚拟环境,键入以下命令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bash 代码解读复制代码python -m venv virt1

注意:-m 标志意味着Python正在以脚本的形式运行内置的venv 模块。

这将创建一个名字为virt1 的虚拟环境,但这只是一个参数。你可以用你想要的任何名字创建虚拟环境。

安装在virt1 目录中的所有东西都不会影响全局包或全系统的安装,从而避免了依赖性冲突。

激活虚拟环境

至关重要的是,每次我们想使用创建的虚拟环境时,都需要用以下命令来激活它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bash 代码解读复制代码source virt1/bin/activate

这并不是在每个系统中都适用,所以你可以查看下面的表格来清楚地了解使用哪条命令。

平台

外壳

激活虚拟环境的命令

POSIX

bash/zsh

$ source (venv-name)/bin/activate

$ source (venv-name)/bin/activate.fish

csh/tcsh

$ source (venv-name)/bin/activate.csh

PowerShell核心

$ (venv-name)/bin/Activate.ps1

Windows

cmd.exe

C:> (venv-name)/Scripts/activate.bat

PowerShell

PS C:> (venv-name)\Scripts\Activate.ps1

注意:POSIX上的$ 标志和Windows上的C:>,PS C:> 标志不是命令的一部分。

你可能注意到,我在POSIX(macOS和Linux)中使用bash shell,这就是为什么我在运行上面的命令。

环境被创建后

一旦虚拟环境被激活,终端提示就会发生一些变化。

Activated environment
Activated environment

下面的命令让你停用虚拟环境。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bash 代码解读复制代码deactivate

注意你的终端提示符又发生了变化。

Deactivated environment
Deactivated environment

现在再次激活你的虚拟环境,使用which 命令来检查正在使用的 Python 二进制文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bash 代码解读复制代码source virt1/bin/activate
which python

如果一切工作顺利,你应该得到类似于下面的输出。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bash 代码解读复制代码/home/daniel/tests/python-tests/venvs/virt1/bin/python

如果你再deactivatewhich ,你应该得到一个不同的输出。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bash 代码解读复制代码deactivate
/usr/bin/python

这是因为,当在一个虚拟环境中工作时,正在使用放置在该环境中的二进制拷贝。这同样适用于软件包。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
26 Dec 2023 python虚拟环境学习
在python项目开发中,保持环境的独立和清洁是至关重要的。这正是python虚拟环境的用武之地。本文旨在为python初学者提供一个关于虚拟环境的简明指南,帮助你理解其概念、重要性以及如何高效使用它们。
俊采
2023/12/27
1810
Python3虚拟环境venv
多项目共存的服务器,每个项目依赖的包可能不一样,比如项目A需要 utilset 0.0.3, 项目B需要utilset 0.4,这时候就需要隔离开,venv就是用来为一个应用创建一套“隔离”的Python运行环境。
闻说社
2025/01/22
1590
Python3虚拟环境venv
Python 中的虚拟环境变得容易
大多数 Python 新手不知道如何设置遵循专业程序员使用的最新标准的开发环境。本教程将教您如何使用行业公认的最佳实践正确创建一个完整的 Python 开发环境。
玖柒的小窝
2021/09/13
1.7K0
Python 中的虚拟环境变得容易
python基础安装虚拟环境
1、pip install virtualenv或者pip3 install virtualenv
Se7eN_HOU
2020/06/04
8360
Python 虚拟环境配置
总结一些使用 Python 开发过程过程中的环境配置,常用操作,常见错误处理等等。
每周聚焦
2025/01/17
3640
Python 虚拟环境配置
几分钟就能学会的Python虚拟环境教程
我们在使用Python的时候,通常用pip来进行包管理。比如我们要安装一个叫requests的库,那么我们就会采用以下命令去安装:
冬夜先生
2021/09/28
6790
用虚拟环境实现开发隔离
在实际的项目中,是不是一定要用“最新版”的模块或包呢?不一定。实际的项目要求往往比较复杂,比如有一个比较“古老的”网站项目中使用了 Django 2.2(参阅第12章12.3节),现在又要新建一个网站,要求使用 Django 3 。如此,在本地计算机的开发环境中就出现了同一个包的不同版本冲突,如何解决?
老齐
2022/01/27
8760
Python - 虚拟环境 venv
Python 虚拟环境主要是为不同 Python 项目创建一个隔离的环境,每个项目都可以拥有独立的依赖包环境,而项目间的依赖包互不影响
小菠萝测试笔记
2021/09/22
8660
Python - 虚拟环境 venv
Python虚拟环境virtualenv手册
python 的虚拟环境可以为一个 python 项目提供独立的解释环境、依赖包等资源,既能够很好的隔离不同项目使用不同 python 版本带来的冲突,而且还能方便项目的发布。
仲君Johnny
2024/01/24
3180
Python版本切换与虚拟环境管理
Python2和Python3之间存在较大的差异,并且由于各种原因导致Python2和Python3长期共存。我们在使用的时候,可能会遇到不同的Python版本问题或者是Python工作环境的切换问题。这里介绍pyenv、virtualenv、conda、venv,pyenv用于管理不同的Python版本,virtualenv、conda以及venv管理不同的工作环境。
py3study
2020/01/06
5.3K0
Python版本切换与虚拟环境管理
挑战30天学完Python:Day23虚拟环境
从项目开始,最好有一个虚拟环境。虚拟环境可以帮助我们创建一个隔离或分离的环境。这将帮助我们避免项目间依赖关系的冲突。如果你在你的终端上执行pip freeze 你会看到你的计算机上所有已安装的包。如果我们使用virtualenv,我们将只访问特定于该项目的包。
MegaQi
2023/10/21
2690
挑战30天学完Python:Day23虚拟环境
Python:创建虚拟环境
在软件和系统架构领域,尤其是作为运维开发工程师,掌握如何在Python项目中创建和管理虚拟环境是一项重要的技能。本文将详细介绍如何在Python 3中创建和使用虚拟环境,这对于隔离项目依赖、维护清洁的开发环境以及促进团队合作至关重要。
运维开发王义杰
2023/11/29
4890
Python:创建虚拟环境
python安装虚拟环境步骤_python虚拟环境迁移
http://blog.csdn.net/pipisorry/article/details/47008981
全栈程序员站长
2022/09/27
8.2K0
python安装虚拟环境步骤_python虚拟环境迁移
python虚拟环境管理之virtual
使python环境拥有独立的包,避免污染原本的python环境。为不同的项目创建不同的环境可以避免安装的库过于庞大和相互干扰。
py3study
2020/01/17
1.1K0
虚拟环境管理
和其他大多数现代编程语言一样,Python对包和模块的下载、存储以及管理有其自己的一套方法。Python的包一般存在几个地方,使用sys.path可以查看python包和模块的存放路径。
以某
2023/03/07
3760
python笔记41-虚拟环境virtualenv
如果你是一个python初学者,我是不建议你搞python虚拟环境的,我看到很多python的初学者同学,使用最新版的pycharm,新建一个工程时候默认就是venu虚拟环境。 然后在使用cmd里面pip安装第三方包的时候,在工程里面死活导入不成功,搞的开始怀疑人生。(你给他讲这是虚拟环境venu,他会一脸懵逼!)
上海-悠悠
2019/09/02
1.2K0
【Python学习笔记】-虚拟环境virtualenv
在开发python应用程序的时候,系统安装的python3只有一个版本:3.4。所有的第三方的包都回被pip安装到python3的site-packages目录下。
DevOps在路上
2023/05/16
4610
Python 虚拟环境 virtualenv
  Python 今天我们就不聊了。接下来咱们说说virtualenv,英文比较好的同学,可能已经猜到了一半,virtual,即:虚拟的。那env是什么鬼?environment吗?所以翻译成中文就是”虚拟环境“。     到底什么是虚拟环境呢?顾名思义,它是一个虚拟出来的环境。通俗的来讲,可以借助虚拟机,docker来理解虚拟环境,就是把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,而且各个容器之间互相隔离,互不影响。我们要学习Django,我们通过这个环境搞一个Django的虚拟环境就好了。 【前提概要】     Django也是一个非常流行的web框架。由于Django的迭代更新非常快,也比较频繁,所以有一些过时的东西需要丢弃掉,一些新的东西需要加进来,从而导致不同的版本之间不兼容。比如Django1.3、Django1.4、Django1.8之间就有很大的差异性。     或者是说,以Python的版本举例,现在工作中使用的Python版本与Python2.x和Python3.x两种。 【故事背景】   假设要进行Python web开发,使用的是Django。手上还有两个老项目A和B需要维护,而新项目C也正在开发中。这里项目A使用的是django1.3,项目B使用的是django1.4,而新项目C使用的是Django1.8。那么问题来了,如何同时在本地进行ABC这三个项目的开发和维护? 正常的模式可能是这样:现在在A项目上有一个BUG需要修复,于是,先执行下面的命令,删除掉原来的版本:
Lansonli
2021/10/09
1.1K0
Python 虚拟环境 Virtualenv 分别在 Windows 和 Linux 上的安装和使用
virtualenv 是用来创建 Python 的虚拟环境的库,虚拟环境能够独立于真实环境存在,并且可以同时有多个互相独立的 Python 虚拟环境,每个虚拟环境都可以营造一个干净的开发环境,对于项目的依赖、版本的控制有着非常重要的作用。
Hopetree
2022/09/26
1.4K0
Python 虚拟环境 Virtualenv 分别在 Windows 和 Linux 上的安装和使用
python虚拟环境
Python 虚拟环境与docker容器的概念有点类似,也和操作系统的沙箱有点类似。用户可以创建独立的虚拟环境,然后在虚拟环境安装指定的外部包,每个虚拟环境之间不会相互影响。
zero000
2021/06/22
5810
python虚拟环境
相关推荐
26 Dec 2023 python虚拟环境学习
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验