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

news2024/9/20 17:17:36

了解如何管理 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开发人员)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2149495.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

24.9.16数据结构|平衡二叉树

一、理解逻辑 平衡二叉是有限制的二叉搜索树,满足平衡因子绝对值小于1的二叉搜索树是平衡二叉树。 平衡指的是树的左右两边的节点左右高度平衡,要求平衡因子处于规定范围 平衡因子:该节点的左高度-右高度,绝对值小于1 如何平衡化&…

2024年9月20日历史上的今天大事件早读

公元前480年9月20日 希腊人在爱琴海萨拉米海战中击败了波斯人 383年9月20日 发生“淝水之战” 1013年9月20日 《君臣事迹》书成,赐名《册府元龟》 1519年9月20日 葡萄牙航海家麦哲伦环球航行 1644年9月20日 清顺治帝驾车由盛京出发,迁都北平&#xf…

在SpringCloud中实现服务熔断与降级,保障系统稳定性

在分布式系统中,微服务架构的应用越来越受欢迎。然而,由于各个微服务之间的依赖关系和网络通信的不稳定性,一个不稳定的服务可能会对整个系统产生连锁反应,导致系统崩溃。为了保障系统的稳定性,我们需要一种机制来处理…

FB FC里调用全局变量注意事项

PLC编程基础之数据类型、变量声明、全局变量和I/O映射 PLC编程基础之数据类型、变量声明、全局变量和I/O映射(CODESYS篇 )_codesys全局变量如何映射写入-CSDN博客文章浏览阅读6.3k次,点赞2次,收藏4次。本文介绍了CODESYS编程的基础知识,包括数据类型、变量声明、全局变量、…

Unity 设计模式 之 结构型模式 -【适配器模式】【桥接模式】 【组合模式】

Unity 设计模式 之 结构型模式 -【适配器模式】【桥接模式】 【组合模式】 目录 Unity 设计模式 之 结构型模式 -【适配器模式】【桥接模式】 【组合模式】 一、简单介绍 二、适配器模式 (Adapter Pattern) 1、什么时候使用适配器模式 2、使用适配器模式的好处 3、适配器…

Active Directory 实验室设置第一部分- AD林安装

在之前的文章中,已经讨论了活动目录的基本知识。在这篇文章中,我们将讨论如何设置和配置环境,以便我们可以使用它来执行各种攻击方案和检测。我们将讨论如何通过GUI和CLI方式完成。 # 1、Active Directory 设置 让我们从活动目录实验室设置…

【JAVA开源】基于Vue和SpringBoot的校园美食分享平台

本文项目编号 T 033 ,文末自助获取源码 \color{red}{T033,文末自助获取源码} T033,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

docker-compose 部署 flink [支持pyflink]

下载 flink 镜像 [rootlocalhost ~]# docker pull flink Using default tag: latest latest: Pulling from library/flink 762bedf4b1b7: Pull complete 95f9bd9906fa: Pull complete a880dee0d8e9: Pull complete 8c5deab9cbd6: Pull complete 56c142282fae: Pull comple…

python安装-升级

这里写自定义目录标题 欢迎使用Markdown编辑器 欢迎使用Markdown编辑器 运行python 或pycharm时报错 [notice] A new release of pip is available: 23.1.2 -> 24.2 [notice] To update, run: python.exe -m pip install --upgrade pipCMD 进入 DOS C:\Users\wang>pyt…

深度学习:(五)初识神经网络

(一)神经网络的层数 除去输入层,但包括输出层,每一层都有自己的参数。 输入层称为第零层。 (二)最简单的神经网络(逻辑回归) 下图中的小圆圈,代表了一种运算。且一个小…

手撕小顶堆

1. 抛砖引玉 给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2 。 请找到和最小的 k 个数对 (u1,v1), (u2,v2) … (uk,vk) 。 分析 大根堆(大顶堆&#x…

vue无法通过页面路径访问提示404,通过nginx配置处理

部署vue项目时,可以通过IP的方式访问主页,当进入特定页面在刷新时,因为浏览器通过URL地址进行请求,就提示404错误。 每次都需要重新从主页进入,这里是因为nginx配置的问题,在nginx里增加一行重定向的设置 …

如何使用淘宝API获取买家秀数据?一份详细指南

什么是淘宝买家秀API? 淘宝买家秀API是淘宝开放平台提供的一种接口,它允许开发者通过编程方式获取淘宝商品的买家秀信息,包括买家上传的图片、视频、评论等内容。 为什么需要使用淘宝买家秀API? 提升商品质量:通过分…

什么是CSRF攻击,该如何防护CSRF攻击

CSRF攻击(跨站请求伪造,Cross-Site Request Forgery)是一种网络攻击手段,攻击者利用已通过身份验证的用户,诱导他们在不知情的情况下执行未授权操作。这种攻击通常发生在用户登录到可信网站并且有活动的会话时&#xf…

【Elasticsearch】-spring boot 依赖包冲突问题

<dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.17.24</version></dependency> 在pom的配置中&#xff0c;只引入了elasticsearch-7.17.24 &#xff0c;但实际上会同时…

vue2中字符串动态拼接字段给到接口

【设计初衷是用户可根据给定的字段进行准确描述】 实现功能&#xff1a; 1. 文本域内容串动态配置字段&#xff0c;以$ {英文}拼接格式给到接口。 &#xff08;传参如&#xff1a;$ {heat_status_code}正常&#xff0c;$ {wdy_temp}也正常&#xff01;&#xff09; 2. 编辑时根…

Nginx从入门到入土(四):基于Nginx负载均衡策略

软负载和硬负载的概念前文提起过&#xff0c;那接下来我们便讲讲什么是负载均衡。 前言 Nginx负载均衡解决的是高并发的问题。 定义&#xff1a; 负载均衡&#xff08;Load Balancing&#xff09;是一种技术策略&#xff0c;它旨在将工作负载&#xff08;如网络流量、计算任…

react之jsx基础(2)高频使用场景

文章目录 1. **组件定义**2. **条件渲染**3. **列表渲染**4. **事件处理**5. **嵌套组件**6. **表单处理**7. **样式应用**8. **处理子组件** 在 React 中&#xff0c;JSX 的使用是非常广泛和高频的。以下是一些常见的高频使用场景及其示例&#xff0c;帮助你更好地理解 JSX 的…

Python基于flask框架的智能停车场车位系统 数据可视化分析系统fyfc81

目录 技术栈和环境说明解决的思路具体实现截图系统设计python语言django框架介绍flask框架介绍性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示技术路线操作可行性详细视频演示源码获取 技术栈和环境说明 结合用户的使用需求&…

我在高职教STM32——准备HAL库工程模板(2)

新学期已开始,又要给学生上 STM32 嵌入式课程了。这课上了多年了,一直用的都是标准库来开发,已经驾轻就熟了。人就是这样,有了自己熟悉的舒适圈,就很难做出改变,老师上课也是如此,排斥新课和不熟悉的内容。显然,STM32 的开发,HAL 库已是主流,自己其实也在使用,只不过…