搜索
首页后端开发Python教程使用 Devcontainer 在 VSCode 中进行 Python 开发

Python Development in VSCode Using Devcontainer

使用 Devcontainer 在 VSCode 中进行 Python 开发

在本指南中,我们将引导您完成使用 Visual Studio Code (VSCode) 在基于 Docker 的开发环境中设置和使用 devcontainer-python-template 进行 Python 开发的步骤。此模板允许您快速启动并运行 devcontainer 中的 Python 项目。

您将基于模板创建自己的存储库,而不是直接克隆存储库,这样您就可以将更改推送回您自己的存储库。

1. 从模板创建新存储库

  • 转到 devcontainer-python-template 存储库:https://github.com/jdevto/devcontainer-python-template。
  • 单击位于存储库页面右上角附近的“使用此模板”按钮。
  • 选择创建新存储库
  • 填写存储库详细信息:
    • 存储库名称:为您的新项目选择一个名称,例如 python-flask-web-app。
    • 描述:(可选)添加存储库的描述。
    • 可见性:选择您的存储库是公共还是私有。
    • 所有者:(可选)如果您要在组织下创建存储库,请选择适当的所有者(您的帐户或组织)。
  • 单击从模板创建存储库。

这将在您的 GitHub 帐户上创建一个新的存储库,并使用 devcontainer-python-template 的内容进行初始化。

2. 在本地克隆您的新存储库

  • 现在您已经创建了一个新的存储库,打开 VSCode。
  • 将新创建的存储库克隆到本地计算机:
git clone git@github.com:jdevto/python-flask-web-app.git
cd python-flask-web-app

创建分支并从中工作始终是最佳实践。

git clone git@github.com:jdevto/python-flask-web-app.git
cd python-flask-web-app

3. 在 VSCode 中打开存储库并启动 Devcontainer

  • 在 VSCode 中打开存储库:
    • 克隆存储库后,在 Visual Studio Code 中打开它。
    • 在 VSCode 菜单中,转到活动栏并单击远程资源管理器。
    • 选择在容器中重新打开。这将构建并启动 .devcontainer 文件夹中定义的开发容器 (devcontainer)。
  • 安装过程中会发生什么:VSCode 将自动:
    • 按照 devcontainer.json 配置文件中指定的方式构建 Docker 容器。
    • 安装requirements.txt或其他项目文件中列出的任何依赖项(例如Python包)。
    • 在容器内干净、隔离的开发环境中打开项目。
  • 成功设置的输出:如果 .devcontainer 设置成功,您应该看到类似于以下内容的输出:
git branch dev
git checkout dev
  • 打开终端:

    • 在同一个 VSCode 窗口中关闭并重新打开终端。
    • 您应该看到如下提示:
      Running the postCreateCommand from devcontainer.json...
    
      [7382 ms] Start: Run in container: /bin/sh -c .devcontainer/scripts/postCreate.sh
      Linux 726a838654fd 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov  6 17:42:15 UTC 2 x86_64 GNU/Linux
      Done. Press any key to close the terminal.
    

4. 验证 Python 是否正常工作

继续之前,请确保 Python 在 devcontainer 内正常工作:

  • 在 VSCode 中打开集成终端。
  • 运行以下命令检查Python版本:
root ➜ /workspaces/python-flask-web-app (main) $
  • 您应该看到如下输出:
  python --version

5. 运行测试Python脚本

该模板包含一个简单的测试脚本,位于 hello/main.py。运行此脚本来验证设置并确保 Python 正确执行:

  • 在终端中,运行测试脚本:
  Python 3.12.7
  • 预期输出:
  python hello/main.py

6. 清理

一旦确认 Python 正在运行并且测试脚本成功运行:

  • 删除测试脚本:如果不再需要测试脚本,请删除 hello 目录:
  Hello, Devcontainer!
  • 根据需要更新许可证文件

7. Flask Web 应用程序开发

  • 使用以下内容更新 README.md 文件:
  rm -rf hello
  • 创建项目目录

    • 创建一个文件夹来保存您的项目。
      # python-flask-web-app
    
      A simple demo showcasing a Python Flask web application running in a VSCode development container. This setup is designed to provide an isolated, portable, and consistent environment for Python development.
    
  • 设置虚拟环境

    • 设置Python虚拟环境来管理依赖项。
    mkdir flask-web-app
    cd flask-web-app
    
  • 安装 Flask

    • 在虚拟环境中安装Flask。
    python -m venv venv
    source venv/bin/activate
    
    • 创建一个requirements.txt 文件来跟踪依赖关系。
    pip install flask
    
  • 创建应用程序

    • 创建app.py 文件。
    git clone git@github.com:jdevto/python-flask-web-app.git
    cd python-flask-web-app
    
    • 使用以下内容更新 app.py 文件:
    git branch dev
    git checkout dev
    
  • 运行应用程序

    • 运行应用程序以验证设置。
      Running the postCreateCommand from devcontainer.json...
    
      [7382 ms] Start: Run in container: /bin/sh -c .devcontainer/scripts/postCreate.sh
      Linux 726a838654fd 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov  6 17:42:15 UTC 2 x86_64 GNU/Linux
      Done. Press any key to close the terminal.
    
    • 您应该看到类似这样的内容:
    root ➜ /workspaces/python-flask-web-app (main) $
    
    • 在浏览器中打开http://127.0.0.1:5000。您应该看到“Hello, World!”。
  • 扩展项目结构

随着应用程序的发展,添加支持模板、静态文件和测试的目录结构。

  • 创建以下结构:

      python --version
    
  Python 3.12.7
  • 使用以下内容更新 base.html 文件:

      python hello/main.py
    
  • 再次运行 Flask 应用
    再次运行应用程序以测试更新后的版本。

      Hello, Devcontainer!
    
  • 打开浏览器并导航至 http://127.0.0.1:5000。

  • 您应该看到类似这样的内容:

      rm -rf hello
    
    • 环境清理 当您完成测试并运行 Flask 应用程序后:
  • 停止 Flask 服务器

    • 在运行 Flask 应用的终端中按 Ctrl C。这将终止服务器进程。
  • 退出开发环境

    • 在 VSCode 中,按 Ctrl Shift P(或 macOS 上的 Cmd Shift P)打开命令面板。
    • 键入在 SSH 中重新打开文件夹 并选择该选项。这可确保您脱离开发容器并返回本地环境,从而为容器外的任何其他任务实现无缝工作流集成。

8.将分支推送到GitHub

  • 执行
  # python-flask-web-app

  A simple demo showcasing a Python Flask web application running in a VSCode development container. This setup is designed to provide an isolated, portable, and consistent environment for Python development.

9. 创建拉取请求 (PR)

导航到 GitHub 上的存储库

  • 访问 GitHub 上的存储库。

转到“拉取请求”选项卡

  • 单击存储库页面顶部的“拉取请求”选项卡。

创建新的拉取请求

  • 点击“新拉取请求”按钮。

选择 PR 分支

  • 基础分支:选择要合并到的分支(例如,主分支或生产分支)。
  • 比较分支:选择您刚刚推送的分支(例如,dev)。

打开拉取请求创建

  • 点击“创建拉取请求”。

查看更改

  • 检查提交和更改文件的列表,以确保一切看起来正确。

添加标题和描述

  • 提供简洁且具有描述性的标题(例如,壮举:更新模板开发)。

  • 添加包含任何必要详细信息的描述(例如更改原因、问题参考等)。

完成拉取请求

  • 再次点击“创建拉取请求”进行确认。

审核并批准 PR

  • 自我审核您的更改或请求队友审核。

合并拉取请求

  • 一切看起来都不错后,导航到 PR 并单击“合并拉取请求”。
  • 点击“确认合并”确认合并。

以上是使用 Devcontainer 在 VSCode 中进行 Python 开发的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Python vs.C:申请和用例Python vs.C:申请和用例Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

2小时的Python计划:一种现实的方法2小时的Python计划:一种现实的方法Apr 11, 2025 am 12:04 AM

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python:探索其主要应用程序Python:探索其主要应用程序Apr 10, 2025 am 09:41 AM

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

您可以在2小时内学到多少python?您可以在2小时内学到多少python?Apr 09, 2025 pm 04:33 PM

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础?如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础?Apr 02, 2025 am 07:18 AM

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到?如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到?Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

Python 3.6加载Pickle文件报错"__builtin__"模块未找到怎么办?Python 3.6加载Pickle文件报错"__builtin__"模块未找到怎么办?Apr 02, 2025 am 07:12 AM

Python3.6环境下加载Pickle文件报错:ModuleNotFoundError:Nomodulenamed...

如何提高jieba分词在景区评论分析中的准确性?如何提高jieba分词在景区评论分析中的准确性?Apr 02, 2025 am 07:09 AM

如何解决jieba分词在景区评论分析中的问题?当我们在进行景区评论分析时,往往会使用jieba分词工具来处理文�...

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。