当前位置: 首页 > news >正文

从零开始:使用VSCode搭建Python数据科学开发环境

引言

在数据科学领域,一个高效、稳定的开发环境是成功的关键。本文将详细介绍如何使用Visual Studio Code搭建一个完整的Python数据科学开发环境。通过本指南,您将学会:

  • 安装和配置VSCode,包括基本设置和快捷键配置
  • 设置Python开发环境,包括解释器配置和虚拟环境管理
  • 安装必要的数据科学包,涵盖数据处理、可视化和机器学习
  • 创建可重复使用的项目模板,实现快速项目初始化

让我们通过这份详细指南,一步步构建您的理想开发环境。

VSCode安装与配置

安装VSCode

首先,我们需要安装VSCode。以下是具体步骤:

  1. 访问VSCode官方网站,网址是:https://code.visualstudio.com/download
  2. 选择并下载适合您操作系统的安装程序
  3. 运行安装程序,按照提示完成安装
  4. 首次启动VSCode,熟悉界面布局

VSCode初始界面
VSCode初始界面展示,包含文件资源管理器、编辑器区域和活动栏的布局

安装必要插件

VSCode的强大功能很大程度上依赖于其丰富的插件生态系统。以下是Python数据科学开发必备的插件列表:

核心开发插件:

  • Python:提供Python语言支持
  • Pylance:增强Python代码智能提示
  • Python Debugger:Python调试工具

Jupyter相关插件:

  • Jupyter:支持Notebook功能
  • Jupyter Keymap:Jupyter快捷键映射
  • Jupyter Slide Show:演示支持
  • Jupyter Cell Tags:单元格标签
  • Jupyter Notebook Renderers:渲染增强

VSCode插件市场
VSCode插件市场界面,搜索Python相关插件,并点击进行安装过程

⚠️ 注意:请确保安装插件后重启VSCode以激活所有功能。

Python环境配置

选择虚拟环境管理工具

在Python数据科学开发中,我们主要有两种主流的虚拟环境管理工具:venvConda。以下是它们的特点对比:

venv优势:

  • Python标准库自带,无需额外安装
  • 轻量级,资源占用少
  • 适合纯Python项目开发

Conda优势:

  • 支持多语言依赖管理
  • 预编译的二进制包,安装更快
  • 内置数据科学包,适合科学计算
  • 环境管理更灵活

💡 选择建议:如果您主要进行数据科学相关开发,建议使用Conda;如果是普通Python开发,使用venv就足够了。

使用venv创建虚拟环境

以下是在VSCode中使用venv创建虚拟环境的详细步骤:

  1. 使用快捷键Ctrl+Shift+P打开命令面板
  2. 输入并选择"Python: Create Environment"
  3. 选择"venv"作为虚拟环境类型
  4. 从列表中选择Python解释器版本

完成上述步骤后,VSCode会自动在项目根目录创建虚拟环境。

虚拟环境创建
VSCode中使用venv创建虚拟环境的界面展示

使用Conda创建虚拟环境

安装Conda

在使用Conda之前,我们需要先安装Anaconda或Miniconda:

  1. 访问Anaconda官网下载安装程序
  2. 运行安装程序,建议选择"Just Me"安装
  3. 安装完成后,打开Anaconda Prompt验证安装:
conda --version
创建Conda环境

在VSCode中使用Conda创建虚拟环境有两种方式:

方式一:通过VSCode命令面板

  1. 使用Ctrl+Shift+P打开命令面板
  2. 输入并选择"Python: Create Environment"
  3. 选择"Conda"作为环境类型
  4. 选择Python版本和需要预装的包

方式二:通过命令行(推荐)

# 创建新环境
conda create -n py312 python=3.12# 激活环境
conda activate py312# 例如需要安装基础数据科学包
conda install pandas numpy scipy scikit-learn

配置终端自动激活

为了提高开发效率,我们可以配置终端在打开时自动激活虚拟环境。具体配置步骤如下:

  1. 使用快捷键Ctrl+,打开设置
  2. 在搜索框中输入"python.terminal"
  3. 找到并启用以下选项:
    • “Python > Terminal: Activate Env In Current Terminal”
    • “Python > Terminal: Activate Environment”

这些设置对venv和Conda环境都有效。

终端设置
VSCode设置界面中Python终端相关配置项

数据科学包安装

安装核心包

在配置好虚拟环境后,我们需要安装数据科学开发所需的一系列核心包。以下是使用pip和conda的安装命令:

使用pip安装:

# 数据处理和分析
pip install pandas numpy scipy scikit-learn# 数据可视化
pip install matplotlib seaborn plotly# 开发工具
pip install jupyter ipykernel black flake8

使用conda安装(推荐):

# 数据处理和分析
conda install pandas numpy scipy scikit-learn# 数据可视化
conda install matplotlib seaborn plotly# 开发工具
conda install jupyter ipykernel black flake8

💡 提示:使用conda安装包时,建议添加conda-forge频道以获取更多包:

conda config --add channels conda-forge

环境依赖管理

为了确保环境的可重复性,建议导出项目的环境配置文件。不同的环境管理工具有不同的导出方式:

使用pip:

# 导出依赖
pip freeze > requirements.txt# 重建环境
pip install -r requirements.txt

使用conda:

# 导出依赖
conda env export > environment.yml# 重建环境
conda env create -f environment.yml

创建项目模板

初始化Git仓库

为了实现配置的版本控制和共享,一般建议使用Git管理项目。以下是初始化步骤:

  1. 在GitHub上创建新仓库,例如"hello-world"
  2. 克隆仓库到本地
  3. 添加基础文件(这里以pip的环境依赖为例):
    • main.py:主程序文件
    • requirements.txt:依赖列表
    • .gitignore:忽略文件配置
  4. 提交更改并推送

设置为模板仓库

将配置好的仓库设置为模板,可以方便地用于创建新项目:

  1. 在GitHub仓库设置中找到"Template repository"选项,启用该选项
  2. 如果我们返回到仓库的根目录,你会注意到一个新按钮,写着"Use this template"
  3. 之后,每当我们想进入一个新的数据科学项目时,我们都可以拿出我们新建的模板仓库,直接开始工作

模板仓库设置
GitHub仓库设置页面中模板仓库选项的位置

结论

本文详细介绍了如何使用VSCode搭建一个专业的Python数据科学开发环境。这个环境不仅提供了强大的开发工具,还确保了项目的可重复性和一致性。随着您的数据科学技能不断提升,您可以继续优化和扩展这个基础环境,使其更好地满足您的特定需求。

相关文章:

从零开始:使用VSCode搭建Python数据科学开发环境

引言 在数据科学领域,一个高效、稳定的开发环境是成功的关键。本文将详细介绍如何使用Visual Studio Code搭建一个完整的Python数据科学开发环境。通过本指南,您将学会: 安装和配置VSCode,包括基本设置和快捷键配置设置Python开…...

C#语言的字符串处理

C#语言的字符串处理 引言 在现代编程中,字符串处理是一项重要的技能,几乎在所有编程语言中都有应用。C#语言作为一种强类型的、面向对象的编程语言,提供了丰富的字符串处理功能。这使得开发人员能够方便地进行文本操作,比如字符…...

《安富莱嵌入式周报》第348期:开源低功耗测试仪,开源创意万用表,续航100-300小时,开源PCB电机,自制shell和网络协议栈,开源水培自动化系统

周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: https://www.bilibili.com/video/BV1Tzr9Y3EQ7/ 《安富莱嵌入式周报》第348期:开源低功…...

npm发布流程说明

一、进入要发布的项目根目录,初始化为npm包 npm initname:最重要的字段之一,项目名称(少于214个字节)。没有name和version不能进行安装; version:最重要的字段之一,项目版本。没有n…...

缓存-文章目录

关于缓存系列文章: 缓存学习总结1(缓存分类) 缓存学习总结2(服务器本地缓存) 缓存学习总结3(服务器内存缓存)推荐使用 缓存学习总结4(分布式缓存) 关于redis系列文章…...

LeetCode 3297.统计重新排列后包含另一个字符串的子字符串数目 I:滑动窗口

【LetMeFly】3297.统计重新排列后包含另一个字符串的子字符串数目 I:滑动窗口 力扣题目链接:https://leetcode.cn/problems/count-substrings-that-can-be-rearranged-to-contain-a-string-i/ 给你两个字符串 word1 和 word2 。 如果一个字符串 x 重新…...

如何在 Ubuntu 24.04 上安装 Memcached 服务器教程

简介 Memcached 是一个高性能、分布式的内存缓存系统,旨在通过减少数据库负载来加速动态 Web 应用程序。它通过将数据和对象缓存在 RAM 中来实现这一点,从而最大限度地减少了从数据库或其他慢速存储层重复获取数据的需要。 本教程的目标是手把手教你如…...

《深度学习模型在鸿蒙分布式框架下的跨设备高效之旅》

在人工智能领域,深度学习模型的训练与推理通常需要强大的计算资源和大量的数据支持。而鸿蒙系统的分布式框架为解决这一问题提供了新的思路和方法,使得深度学习模型能够在多个设备之间实现高效的训练与推理。 鸿蒙分布式框架概述 鸿蒙系统是一款面向万…...

[python3]Excel解析库-xlutils

xlutils 是一组用于处理 Excel 文件的 Python 库,它实际上是 xlrd 和 xlwt 的扩展,提供了额外的功能来操作 Excel 文件。xlutils 主要由三个部分组成:xlutils.copy、xlutils.filter 和 xlutils.view,它们分别用于复制和修改现有 E…...

Springboot Bean创建流程、三种Bean注入方式(构造器注入、字段注入、setter注入)、循坏依赖问题

文章目录 1 Bean 创建流程1.1 Bean的扫描注册1.2 创建Bean的顺序 2 三种Bean注入方式2.1 构造器注入 | Constructor Injection(推荐)2.2 字段注入 | Field Injection(常用)2.3 方法注入 | Setter Injection2.4 三种方式注入顺序 3…...

mybatisX插件的使用,以及打包成配置

装mybatisX插件; idea连接数据库; 点击mybatisx-generator,设置自己装mybatisX插件; idea连接数据库; 点击mybatisx-generator,设置自己要的包和类; 如果要把自己的配置设置成一个自定义模板&a…...

【初阶数据结构】线性表之单链表

文章目录 前言 一、单链表的概念与结构 1.概念 2.结点 3.性质 二、实现单链表 1.结构的定义 2.链表的打印和结点的申请 3.单链表的尾插和头插 4.单链表的尾删和头删 5.单链表的查找 6.指定位置之前插入数据和指定位置之后插入数据 7.删除pos结点和删除pos之后的结…...

CentOS7通过yum安装JDK

CentOS7通过yum安装JDK 1、卸载自带的JDK 查看已安装的JDK rpm -qa | grep java删除已安装的JDK yum -y remove java-1.8.0-openjdk*验证是否删除成功 查不到版本信息则已删除成功 java -version2、安装JDK sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-deve…...

c# 常见的几种取整场景

软件取整,通常指的是在计算机软件中对数值进行取整操作,即将一个浮点数或小数转换为整数,同时确定如何处理小数部分。取整操作在编程和数学计算中非常常见,不同的取整方法适用于不同的场景。 常见的取整方法 向零取整&#xff08…...

数据库回滚:大祸临头时

原文地址 什么是数据库回滚? 数据库技术中,回滚是通过撤销对数据库所做的一项或多项更改,将数据库返回到先前状态的操作。它是维护数据完整性和从错误中恢复的重要机制。 什么时候需要数据库回滚? 数据库回滚在以下几个场景中很…...

【GoLang】两个字符串如何比较大小?以及字典顺序的比较规则

在 Go 语言中,字符串的比较是基于字典顺序进行的。 字典顺序的比较规则: 比较两个字符串从左到右逐个字符的Unicode码点值, 若比较结果不相等则将此结果作为字符串大小的结果, 若比较结果相等则比较下一位, 若其中一个…...

5G学习笔记之SNPN系列之UE入网和远程配置

参考:3GPP 23.501 5.30.2.10 Onboarding of UEs for SNPNs 小小协议搬运工 目录 0. NPN系列 1. 概述 2. SNPN作为ONN 2.1 DCS参与的入网主鉴权 2.2 DCS不参与的入网主鉴权 2.3 UE入网 3. PLMN作为ONN 4. 远程配置 0. NPN系列 1. NPN概述 2. NPN R18 3. 【SNPN系列】…...

C#版OpenCv常用函数大全

OpenCvSharp 是 OpenCV 的NET封装,提供了丰富的图像处理和计算机视觉功能。以下是一些常用函数及其详细说明。 1. 图像读取与显示 Cv2.ImRead 功能:读取图像文件并返回一个 Mat 对象。用法:Mat image Cv2.ImRead("path/to/image.jpg&…...

Spring Boot教程之五十二:CrudRepository 和 JpaRepository 之间的区别

Spring Boot – CrudRepository 和 JpaRepository 之间的区别 Spring Boot建立在 Spring 之上,包含 Spring 的所有功能。由于其快速的生产就绪环境,使开发人员能够直接专注于逻辑,而不必费力配置和设置,因此如今它正成为开发人员…...

蓝桥杯备考:数据结构之栈 和 stack

栈的概念以及栈的实现 栈是一种只允许在一端进行插入和删除的线性表 空栈:没有任何元素 入栈:插入元素 出栈:删除元素 栈本身就是一个线性表,我们可以写一个足够大的数组来实现栈 除此之外,我们还需要变量n来记录…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露,数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据,严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能,但SEMR…...

一些实用的chrome扩展0x01

简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...

归并排序:分治思想的高效排序

目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法,由约翰冯诺伊曼在1945年提出。其核心思想包括: 分割(Divide):将待排序数组递归地分成两个子…...