无需配置设备,借助GitHub快速编译项目并直接运行!

引言

你是否曾经有过类似的烦恼,发现了一个有趣的项目,想要测试一下,但是自己的设备没有对应的开发环境或者受制于自己的设备,不想或者不能去配置对应的开发环境,应该怎么办呢?这种情况下,其实 Github 已经给我们提供了一个解决方案,我们一起来看一下。

Github codespace

Github codespace 是一个基于云的开发环境,无论你身处何地,只有有一个浏览器和良好的网络,就可以快速开始开发项目或者解决 bug,它提供了完整的开发工具链,包括代码编辑器、终端、调试器等,这些工具几乎都是开箱即用的,不用进行任何本地设置或者配置。

举个例子

打开vscode

举个例子,cpython 项目,我们想要对其进行编译,编译这个事情,还是挺重的,要安装一堆编译依赖和各种编译工具,那么借助 Github 应该如何做呢?

首先我们要有一个正常登录的 Github 账号并且登录好(不登录的话以下操作不会生效哦),然后打开项目首页,应该是这样的:

image-20241229175151084

这个时候,关键的操作来了,我们在英文输入法的状态下,点击键盘上的“点”键,对,就是那个点。

点击之后, 我们会发现,Github 自动跳转到了另一个网址,地址也从 github.com 变成了github.dev,界面会变成这样:

image-20241229180446389

这个时候,我们就打开了 Github 提供的 vscode 的在线版(web 版本),这个在线版和我们本地使用的 vscode 其实基本上没什么区别,该有的功能都有,也可以安装插件,只是有些插件可能不能发挥全部的功能。

创建开发环境

到了 vscode 的界面后,我们这个时候就可以随意的查看代码了,就像项目在本地的 vscode 一样,并且还支持函数跳转等操作。

但是,有个问题,这个 vscode 是没有终端的,要想打开终端并且拥有一个开发环境,我们要怎么做呢?

首先我们要点击左下角的 Github 字样

image-20241229180959250

然后屏幕中会出现一些选项,我们可以选择连接到已有的 codespace,也可以为当前的存储库新建一个 codespace,我们这里选择新建一个 codespace,点击 Continue Working in New Codespace。

image-20241229181027241

接下来会出现配置信息,我们选择一个配置高点的,毕竟要编译嘛。

image-20241229181231896

等待一小会, 我们会发现,终端出现了,这个时候我们就拥有了一台 4 核 16G 内存 32G 硬盘的虚拟机可用了,我们可以在这台虚拟机中任意的进行各种操作,接下来我们用它来编译 Python 试一下。

image-20241229184112025

编译 Python

因为编译 Python 不是重点,这里我就快速略过了,根据图中的编译教程,进行编译,贴几张图:

image-20241229181606112

image-20241229181646836

image-20241229181806698

image-20241229181833140

image-20241229182241610

image-20241229182328523

机器配置还是不错的,很快就编译好了,从上图可以看到,我们成功的编译了最新分支的 3.14 版本的 Python,并且安装后可以正常使用。

编译后的产物还可以直接下载,在文件或者文件夹中点击右键,即可下载所需的文件。

image-20241229183355185

Github Codespace 限制

我们上面使用 Github Codespace 编译了一个 cpython 出来,机器的性能还是不错的,但是这个虚拟机并不是无限制使用的。

Github Codespace 限制如下:

  • 个人 GitHub 帐户每月包含一定数量的 GitHub Codespaces 免费使用额度
  • 默认情况下,当 Codespace 不再活动 30 分钟后,虚拟机会被挂起直到你再次使用它
  • 长期不使用的 Codespace 会被删除,最多保留 30 天
  • 只有活动状态下的 Codespace 才会被计费,非活动状态下的 Codespace 不会被计费

其他限制和 Codespace 使用方法详见官方文档:https://docs.github.com/en/codespaces

**当然了,我上面说的一些限制是针对于免费账户的,如果升级到付费账户,那么一些问题都不再是问题。 **

总结

通过 Github Codespace,我们可以实现在浏览器中快速编译所需要的项目,Github 只是提供了一个虚拟机给我们,我们可以使用它运行任意项目,包括 Python 但不限于它,还有 C,Rust,C#,JS 等等等,语言上没有任何限制。

我们可以用它在需要的时候云端编译一个项目并且将编译产物下载到本地直接就可以使用了,省去了在本地配置编译环境的时间,无论个人开发者还是临时的移动办公需求,都是很方便的。

当然了,Codespace 并不只有我上面写的哪些功能,它还支持将端口转发到公网,你甚至可以在上面开一个 web 服务器来临时提供服务,Github 会给我们提供域名和转发服务,剩下的功能就留着大家自己探索了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++11】类型分类、引用折叠、完美转发

目录 一、类型分类 二、引用折叠 三、完美转发 一、类型分类 C11以后,进一步对类型进行了划分,右值被划分纯右值(pure value,简称prvalue)和将亡值 (expiring value,简称xvalue)。 纯右值是指那些字面值常量或求值结果相当于…

k-Means聚类算法 HNUST【数据分析技术】(2025)

1.理论知识 K-means算法,又称为k均值算法。K-means算法中的k表示的是聚类为k个簇,means代表取每一个聚类中数据值的均值作为该簇的中心,或者称为质心,即用每一个的类的质心对该簇进行描述。K-Means算法接受参数K;然后将…

阿里云redis内存优化——PCP数据清理

在阿里云安装了一个redis节点,今天使用时忽然想着点击了一下分析内存。好家伙,居然崩出了一个30多M的块出来。问题是我本地安装的redis没有这个啊,怎么奇怪冒出这个来了。 本着把系统用干榨尽的态度,研究了下这个问题的来源。网上…

Java开发-后端请求成功,前端显示失败

文章目录 报错解决方案1. 后端未配置跨域支持2. 后端响应的 Content-Type 或 CORS 配置问题3. 前端 request 配置问题4. 浏览器缓存或代理问题5. 后端端口未被正确映射 报错 如下图,后端显示请求成功,前端显示失败 解决方案 1. 后端未配置跨域支持 …

MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式)

MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式) 本文目录: 零、时光宝盒🌻 一、简介 二、安装 三、使用方法 3.1、使用命令行形式 3.2、用 Python 调用 四、总结 五、参考资料 零、时光宝盒🌻 &a…

akamai3.0 wizzair 网站 分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 有相关问题请第一时间头像私信联系我删…

kubernetes Gateway API-1-部署和基础配置

文章目录 1 部署2 最简单的 Gateway3 基于主机名和请求头4 重定向 Redirects4.1 HTTP-to-HTTPS 重定向4.2 路径重定向4.2.1 ReplaceFullPath 替换完整路径4.2.2 ReplacePrefixMatch 替换路径前缀5 重写 Rewrites5.1 重写 主机名5.2 重写 路径5.2.1 重新完整路径5.2.1 重新部分路…

likeAdmin架构部署(踩坑后的部署流程

1、gitee下载 https://gitee.com/likeadmin/likeadmin_java.git 自己克隆 2、项目注意 Maven:>3.8 ❤️.9 (最好不要3.9已经试过失败 node :node14 (不能是18 已经测试过包打不上去使用14的换源即可 JDK:JDK8 node 需要换源 npm c…

宠物行业的出路:在爱与陪伴中寻找增长新机遇

在当下的消费市场中,如果说有什么领域能够逆势而上,宠物行业无疑是一个亮点。当人们越来越注重生活品质和精神寄托时,宠物成为了许多人的重要伴侣。它们不仅仅是家庭的一员,更是情感的寄托和生活的调剂。然而,随着行业…

Java 堆排序原理 图文详解 代码逻辑

文章目录 1. 时间复杂度 & 空间复杂度2. 大顶堆、小顶堆3. 具体步骤 & 原理1. 判断是否满足堆的性质2. 维护堆的性质3. 交换位置 4. 代码实现 1. 时间复杂度 & 空间复杂度 时间复杂度: O(nlogn) 建堆时间复杂度: O(n) 排序时间复杂度: O(nlogn)空间复杂度: O(1) …

计算机网络|数据流向剖析与分层模型详解

文章目录 一、网络中的数据流向二、计算机网络通信模型1.OSI 模型2.TCP/IP 模型3.TCP/IP五层模型3.1 分层架构描述3.2各层地址结构3.3UDP数据包报头结构 三、总结 一、网络中的数据流向 在计算机网络中,数据的流向是指数据从发送端到接收端的传输路径。数据流向涉及…

ensp、HCL环境部署vm版

ensp、HCL环境部署vm版 前言部署环境vmware安装下载镜像创建虚拟机安装ensp、HCL创建快照 问题此平台不支持虚拟化的 AMD-V/rvi。 前言 因为我换了电脑,锐龙版的win11,我按照以前的思路去装软件,发现有很多问题,特别是跳hyper-v弹…

鸿蒙项目云捐助第二十九讲云捐助项目云数据库商品的批量增加功能实现

鸿蒙项目云捐助第二十九讲云捐助项目云数据库商品的批量增加功能实现 关于鸿蒙云捐助项目,前面的内容已使用云函数,云数据库分别实现云捐助项目首页中的项分类导航,底部导航,轮播图功能,这里继续实现云数据库加载捐赠…

【LeetCode: 83. 删除排序链表中的重复元素 + 链表】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

Spring源码_05_IOC容器启动细节

前面几章,大致讲了Spring的IOC容器的大致过程和原理,以及重要的容器和beanFactory的继承关系,为后续这些细节挖掘提供一点理解基础。掌握总体脉络是必要的,接下来的每一章都是从总体脉络中, 去研究之前没看的一些重要…

2024-12-29-sklearn学习(25)无监督学习-神经网络模型(无监督) 烟笼寒水月笼沙,夜泊秦淮近酒家。

文章目录 sklearn学习(25) 无监督学习-神经网络模型(无监督)25.1 限制波尔兹曼机25.1.1 图形模型和参数化25.1.2 伯努利限制玻尔兹曼机25.1.3 随机最大似然学习 sklearn学习(25) 无监督学习-神经网络模型(无监督) 文章参考网站&a…

BUG分析 - 重启有时失败

1. 倒查版本 1.0_11 - ok1.0_12 - fail 2.对比1.0_11和1.0_12 失败时的日志 ================================== 1.0_11 ============================== 2024-12-26 09:46:51.886 INFO [26332] [ThreadPLCPool::in

git注意事项

提交代码的备注 feat : 开发 新增功能 fix: 修复 git相关 1. git安装及全局用户设置 Git安装 npm install git -ggit修改用户名邮箱密码 git config --global --replace-all user.name "要修改的用户名" git config --global --replace-all user.email"要修改…

LeetCode每日三题(六)数组

一、最大子数组和 自己答案: class Solution {public int maxSubArray(int[] nums) {int begin0;int end0;if(numsnull){//如果数组非空return 0;}else if(nums.length1){//如果数组只有一个元素return nums[0];}//初值选为数组的第一个值int resultnums[0];int i…

一个通用的居于 OAuth2的API集成方案

在现代 web 应用程序中,OAuth 协议是授权和认证的主流选择。为了与多个授权提供商进行无缝对接,我们需要一个易于扩展和维护的 OAuth 解决方案。本文将介绍如何构建一个灵活的、支持多提供商的 OAuth 系统,包括动态 API 调用、路径参数替换、…