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

简介: 本教程教你如何使用业界公认的最佳实践,创建一个完全工作的Python开发环境。虚拟环境通过隔离依赖项,避免项目间的冲突,并允许你轻松管理包版本。我们将使用Python 3的内置`venv`模块来创建和激活虚拟环境,确保不同项目能独立运行,不会相互干扰。此外,还将介绍如何检查Python版本、激活和停用虚拟环境,以及使用`requirements.txt`文件共享依赖项。通过本教程,你将学会:- 创建和管理虚拟环境- 避免依赖性冲突- 部署Python应用到服务器适合新手和希望提升开发环境管理能力的开发者。

大多数 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--并输入以下命令。

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 二进制文件的版本来证明它的存在。

bash

代码解读

复制代码

python3 --version

Python 3.9.5

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

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

内置的venv 模块

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

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

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

bash

代码解读

复制代码

python -m venv virt1

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

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

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

激活虚拟环境

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

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,这就是为什么我在运行上面的命令。

环境被创建后

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

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

bash

代码解读

复制代码

deactivate

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

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

bash

代码解读

复制代码

source virt1/bin/activate
which python

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

bash

代码解读

复制代码

/home/daniel/tests/python-tests/venvs/virt1/bin/python

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

bash

代码解读

复制代码

deactivate
/usr/bin/python

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


转载来源:https://juejin.cn/post/7111691554217000973

相关文章
|
2月前
|
人工智能 JavaScript API
零基础构建MCP服务器:TypeScript/Python双语言实战指南
作为一名深耕技术领域多年的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP作为Anthropic推出的开放标准,正在重新定义AI应用与外部系统的交互方式,它不仅解决了传统API集成的复杂性问题,更为开发者提供了一个统一、安全、高效的连接框架。在过去几个月的实践中,我发现许多开发者对MCP的概念理解透彻,但在实际动手构建MCP服务器时却遇到了各种技术壁垒。从环境配置的细节问题到SDK API的深度理解,从第一个Hello World程序的调试到生产环境的部署优化,每一个环节都可能成为初学者的绊脚石。因此,我决定撰写这篇全面的实
533 67
零基础构建MCP服务器:TypeScript/Python双语言实战指南
|
2月前
|
机器学习/深度学习 算法 量子技术
GQNN框架:让Python开发者轻松构建量子神经网络
为降低量子神经网络的研发门槛并提升其实用性,本文介绍一个名为GQNN(Generalized Quantum Neural Network)的Python开发框架。
56 4
GQNN框架:让Python开发者轻松构建量子神经网络
|
1月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
384 1
|
3月前
|
数据采集 数据可视化 JavaScript
用Python采集CBC新闻:如何借助海外代理IP构建稳定采集方案
本文介绍了如何利用Python技术栈结合海外代理IP采集加拿大CBC新闻数据。内容涵盖使用海外代理IP的必要性、青果代理IP的优势、实战爬取流程、数据清洗与可视化分析方法,以及高效构建大规模新闻采集方案的建议。适用于需要获取国际政治经济动态信息的商业决策、市场预测及学术研究场景。
|
4月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
316 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
4月前
|
Python
在VScode环境下配置Python环境的方法
经过上述步骤,你的VSCode环境就已经配置好了。请尽情享受这扇你为自己开启的知识之窗。如同你在冒险世界中前行,你的探索之路只有越走越广,你获得的知识只会越来越丰富,你的能力只会越来越强。
438 37
|
3月前
|
数据采集 Web App开发 自然语言处理
利用Python构建今日头条搜索结果的可视化图表
利用Python构建今日头条搜索结果的可视化图表
|
8月前
|
Ubuntu Linux 测试技术
Python 虚拟环境配置
本文总结了 Python 开发中的环境配置、常用操作和常见错误处理。重点介绍了如何使用 `virtualenv` 搭建虚拟环境,解决依赖冲突问题,并保持系统环境的干净。同时,详细说明了依赖库的安装与管理方法,包括使用 `pip install` 安装依赖、生成和使用 `requirements.txt` 文件,以及查看 Python 文档和修改环境变量等实用技巧。
611 60
|
6月前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建 RESTful API
本文深入探讨了使用 Python 构建 RESTful API 的方法,涵盖 Flask、Django REST Framework 和 FastAPI 三个主流框架。通过实战项目示例,详细讲解了如何处理 GET、POST 请求,并返回相应数据。学习这些技术将帮助你掌握构建高效、可靠的 Web API。

推荐镜像

更多