从零开始:使用VSCode搭建Python数据科学开发环境
引言
在数据科学领域,一个高效、稳定的开发环境是成功的关键。本文将详细介绍如何使用Visual Studio Code搭建一个完整的Python数据科学开发环境。通过本指南,您将学会:
- 安装和配置VSCode,包括基本设置和快捷键配置
- 设置Python开发环境,包括解释器配置和虚拟环境管理
- 安装必要的数据科学包,涵盖数据处理、可视化和机器学习
- 创建可重复使用的项目模板,实现快速项目初始化
让我们通过这份详细指南,一步步构建您的理想开发环境。
VSCode安装与配置
安装VSCode
首先,我们需要安装VSCode。以下是具体步骤:
- 访问VSCode官方网站,网址是:https://code.visualstudio.com/download
- 选择并下载适合您操作系统的安装程序
- 运行安装程序,按照提示完成安装
- 首次启动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插件市场界面,搜索Python相关插件,并点击进行安装过程
⚠️ 注意:请确保安装插件后重启VSCode以激活所有功能。
Python环境配置
选择虚拟环境管理工具
在Python数据科学开发中,我们主要有两种主流的虚拟环境管理工具:venv 和 Conda。以下是它们的特点对比:
venv优势:
- Python标准库自带,无需额外安装
- 轻量级,资源占用少
- 适合纯Python项目开发
Conda优势:
- 支持多语言依赖管理
- 预编译的二进制包,安装更快
- 内置数据科学包,适合科学计算
- 环境管理更灵活
💡 选择建议:如果您主要进行数据科学相关开发,建议使用Conda;如果是普通Python开发,使用venv就足够了。
使用venv创建虚拟环境
以下是在VSCode中使用venv创建虚拟环境的详细步骤:
- 使用快捷键
Ctrl+Shift+P
打开命令面板 - 输入并选择"Python: Create Environment"
- 选择"venv"作为虚拟环境类型
- 从列表中选择Python解释器版本
完成上述步骤后,VSCode会自动在项目根目录创建虚拟环境。
VSCode中使用venv创建虚拟环境的界面展示
使用Conda创建虚拟环境
安装Conda
在使用Conda之前,我们需要先安装Anaconda或Miniconda:
- 访问Anaconda官网下载安装程序
- 运行安装程序,建议选择"Just Me"安装
- 安装完成后,打开Anaconda Prompt验证安装:
conda --version
创建Conda环境
在VSCode中使用Conda创建虚拟环境有两种方式:
方式一:通过VSCode命令面板
- 使用
Ctrl+Shift+P
打开命令面板 - 输入并选择"Python: Create Environment"
- 选择"Conda"作为环境类型
- 选择Python版本和需要预装的包
方式二:通过命令行(推荐)
# 创建新环境
conda create -n py312 python=3.12# 激活环境
conda activate py312# 例如需要安装基础数据科学包
conda install pandas numpy scipy scikit-learn
配置终端自动激活
为了提高开发效率,我们可以配置终端在打开时自动激活虚拟环境。具体配置步骤如下:
- 使用快捷键
Ctrl+,
打开设置 - 在搜索框中输入"python.terminal"
- 找到并启用以下选项:
- “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管理项目。以下是初始化步骤:
- 在GitHub上创建新仓库,例如"hello-world"
- 克隆仓库到本地
- 添加基础文件(这里以pip的环境依赖为例):
main.py
:主程序文件requirements.txt
:依赖列表.gitignore
:忽略文件配置
- 提交更改并推送
设置为模板仓库
将配置好的仓库设置为模板,可以方便地用于创建新项目:
- 在GitHub仓库设置中找到"Template repository"选项,启用该选项
- 如果我们返回到仓库的根目录,你会注意到一个新按钮,写着"Use this template"
- 之后,每当我们想进入一个新的数据科学项目时,我们都可以拿出我们新建的模板仓库,直接开始工作
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# 常见的几种取整场景
软件取整,通常指的是在计算机软件中对数值进行取整操作,即将一个浮点数或小数转换为整数,同时确定如何处理小数部分。取整操作在编程和数学计算中非常常见,不同的取整方法适用于不同的场景。 常见的取整方法 向零取整(…...

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

【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来记录…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...