使用 VSCode 在 Python 中创建项目环境

了解如何管理 Python 项目的不同环境,欢迎来到雲闪世界

添加图片注释,不超过 140 字(可选)

介绍

创建数据科学项目非常简单。如今,有了众多资源,您只需选择开发工具并启动项目即可。

除了多个人工智能机器人可以帮助您完成大部分想要创建的工作之外,文档也很容易获得。

然而,随着项目变得越来越复杂和专业化,就需要开始将项目彼此隔离。有时,在项目 A 中运行良好的模块可能无法在项目 B 中一起运行。或者两个不同包中同名的方法可能会造成混淆。我的意思是,在非隔离环境中可能会发生很多事情。

那时我们就会发现需要开始隔离开发环境。因此,在这篇文章中,我们的想法是向您展示一种使用 Python 和 VS Code 创建隔离环境的快速简便的方法。

我们开始工作吧。

项目环境

如前所述,开发环境是在您的计算机内部创建的一个独立的"盒子",用于仅安装该项目要使用的模块。

开发环境是在您的计算机内部创建的一个独立的"盒子",以便更好地控制包。

假设我们将创建一个需要 Pandas、Scikit Learn 和 Streamlit 的分类项目。在这种情况下,我们可以只安装这些模块及其依赖项,而无需添加许多其他永远不会使用的软件包。然后可以将其与不会使用 Streamlit 的另一个项目分开。

现在让我们继续并开始编写一些代码。

使用 Pip

创建环境的最简单方法是使用 Python 的原生工具。为此,只需启动 VS Code 会话并打开一个新的 Powershell 终端(终端 > 新建终端)。

接下来,您可以为该项目创建一个新文件夹。

mkdir name_your_project

然后,更改文件夹以访问最近创建的目录。

cd name_your_project

此时,如果您愿意,可以使用 VS Code 打开新创建的文件夹。只需记住从新窗口重新打开终端即可。

在新文件夹中,是时候创建新环境了。使用以下命令。我将使用标准名称创建一个虚拟环境.venv。

python -m venv .venv

就这样。现在要激活它,您可以在 Powershell 中使用此命令。

.venv/Scripts/activate

这是已激活的虚拟环境

现在,当此环境激活时,您想要安装的任何内容都将被隔离,test_proj并且不会影响其他项目。让我们安装 Pandas 和 Streamlit,但不安装 Scipy。

pip install pandas
pip install streamlit

两个包都已安装,如果我运行一个快速脚本来检查,结果如下。

import pandas as pd
import streamlit as st
print(pd.__version__)
print(st.__version__)

[OUT]:
2.2.2
1.38.0

如果我检查 Scipy import scipy。

import scipy
[OUT]: ModuleNotFoundError: No module named 'scipy'

如果我们现在创建另一个环境并仅安装 Scipy,看看会发生什么。

python -m venv env2
env2/Scripts/activate
pip install scipy

import pandas as pd
[OUT]: ModuleNotFoundError: No module named 'pandas'

看看 Pandas 怎么没有安装env2。我们来看看 Scipy。

复制代码
import scipy.stats as scs
print(scs.norm.rvs(loc=1, scale=3)

[OUT]:
0.5100109427428302

使用 PyEnv 和 Poetry

现在让我们看看使用 PyEnv 和 Poetry 做同样事情的另一种方法,这两个 Python 包适合此目的。这甚至比 Python 的原生工具更容易。

使用 PyEnv 是个好主意,因为它可以在同一台机器上管理不同版本的 Python。在处理多个项目时,一个始终可能出现的问题是,给定的 Python 版本与您正在使用的(或想要使用的)包不兼容。在这种情况下,您需要安装以前或更新版本的 Python。PyEnv 可以解决这个问题。

安装该软件包有点棘手,但按照本教程,您可以在 Windows 上快速完成安装。

现在要安装 Poetry,首先您必须安装pipx。请按照以下步骤操作。然后使用命令pipx install poetry完成 Poetry 的安装。

您可能还需要运行下一个命令来告诉您的 Windows Shell 您可以让 Poetry 管理虚拟环境。

复制代码
poetry config virtualenvs.in-project true

完成初始安装步骤后,在 VSCode 中的 Powershell 中用 Poetry 创建一个新环境非常简单,如下所示:

poetry new test_proj  

Created package test_proj in test_proj

使用该命令,Poetry 已经创建了虚拟环境文件夹、测试文件夹和一个pyproject.toml包含所有项目规范的漂亮文件。这太神奇了。看看 toml 文件。

pyproject.toml 文件

当我命令时poetry shell,Poetry 会创建.venv文件夹并激活它。

现在,要向项目添加新包,您可以使用:

poetry add pandas

This gets added to the toml file:
[tool.poetry.dependencies]
python = "^3.12"
pandas = "^2.2.2"

或者要删除它们,请使用:

poetry remove pandas

要为该项目使用不同版本的 Python,我们可以要求 PyEnv 使用 3.11.5。

pyenv local 3.11.5

Python 版本已更改

完成后,您可以exit在 shell 上写入以停用您的环境。

出发前

至此,我们完成了我们的小旅程,以进一步了解使用 VS Code、Pip 和 Poetry 在 Python 中进行环境管理。

这些知识有助于将我们项目的影响隔离在受控的"盒子"中,从而减轻依赖性问题或著名的"它在我的计算机上运行"的问题。

我认为Poetry 生成的toml文件也非常有用,它为您提供了项目内容的摘要。此外,Poetry 不会列出所有依赖项。它仅显示您实际请求安装的软件包,例如"Pandas"、"Scipy"等,而不是显示 numpy 和其他依赖项。

感谢关注雲闪世界。(Aws解决方案架构师vs开发人员&GCP解决方案架构师vs开发人员)

相关推荐
Bigcrab__2 分钟前
Python3网络爬虫开发实战(15)Scrapy 框架的使用(第一版)
爬虫·python·scrapy
千寻简41 分钟前
Cursor免费 GPT-4 IDE 工具的保姆级使用教程
java·运维·ide·ai
易辰君1 小时前
Python编程 - 协程
开发语言·python
宇宙第一小趴菜1 小时前
探索网络世界:TCP/IP协议、Python Socket编程及日常生活比喻
网络·python·tcp/ip
小黑031 小时前
Phoenix使用
开发语言·python
南斯拉夫的铁托1 小时前
(PySpark)RDD实验实战——求商品销量排行
python·spark·pyspark
kay_5451 小时前
YOLOv8改进 | 模块缝合 | C2f 融合SCConv提升检测性能【CVPR2023】
人工智能·python·深度学习·yolo·目标检测·面试·yolov8改进
kngines1 小时前
【PLW004】基于Python网络爬虫与推荐算法的新闻推荐平台v1.0(Python+Django+NLP+Vue+MySQL前后端分离)
爬虫·python·nlp·推荐算法
激动的兔子2 小时前
Python_两个jpg图片文件名称互换
python
计算机学姐2 小时前
基于python+django+vue的医院预约挂号系统
开发语言·vue.js·后端·python·mysql·django·tornado