无需配置设备,借助GitHub快速编译项目并直接运行!
引言
你是否曾经有过类似的烦恼,发现了一个有趣的项目,想要测试一下,但是自己的设备没有对应的开发环境或者受制于自己的设备,不想或者不能去配置对应的开发环境,应该怎么办呢?这种情况下,其实 Github 已经给我们提供了一个解决方案,我们一起来看一下。
Github codespace
Github codespace 是一个基于云的开发环境,无论你身处何地,只有有一个浏览器和良好的网络,就可以快速开始开发项目或者解决 bug,它提供了完整的开发工具链,包括代码编辑器、终端、调试器等,这些工具几乎都是开箱即用的,不用进行任何本地设置或者配置。
举个例子
打开vscode
举个例子,cpython 项目,我们想要对其进行编译,编译这个事情,还是挺重的,要安装一堆编译依赖和各种编译工具,那么借助 Github 应该如何做呢?
首先我们要有一个正常登录的 Github 账号并且登录好(不登录的话以下操作不会生效哦),然后打开项目首页,应该是这样的:
这个时候,关键的操作来了,我们在英文输入法的状态下,点击键盘上的“点”键,对,就是那个点。
点击之后, 我们会发现,Github 自动跳转到了另一个网址,地址也从 github.com 变成了github.dev,界面会变成这样:
这个时候,我们就打开了 Github 提供的 vscode 的在线版(web 版本),这个在线版和我们本地使用的 vscode 其实基本上没什么区别,该有的功能都有,也可以安装插件,只是有些插件可能不能发挥全部的功能。
创建开发环境
到了 vscode 的界面后,我们这个时候就可以随意的查看代码了,就像项目在本地的 vscode 一样,并且还支持函数跳转等操作。
但是,有个问题,这个 vscode 是没有终端的,要想打开终端并且拥有一个开发环境,我们要怎么做呢?
首先我们要点击左下角的 Github 字样
然后屏幕中会出现一些选项,我们可以选择连接到已有的 codespace,也可以为当前的存储库新建一个 codespace,我们这里选择新建一个 codespace,点击 Continue Working in New Codespace。
接下来会出现配置信息,我们选择一个配置高点的,毕竟要编译嘛。
等待一小会, 我们会发现,终端出现了,这个时候我们就拥有了一台 4 核 16G 内存 32G 硬盘的虚拟机可用了,我们可以在这台虚拟机中任意的进行各种操作,接下来我们用它来编译 Python 试一下。
编译 Python
因为编译 Python 不是重点,这里我就快速略过了,根据图中的编译教程,进行编译,贴几张图:
机器配置还是不错的,很快就编译好了,从上图可以看到,我们成功的编译了最新分支的 3.14 版本的 Python,并且安装后可以正常使用。
编译后的产物还可以直接下载,在文件或者文件夹中点击右键,即可下载所需的文件。
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 会给我们提供域名和转发服务,剩下的功能就留着大家自己探索了。
相关文章:
无需配置设备,借助GitHub快速编译项目并直接运行!
引言 你是否曾经有过类似的烦恼,发现了一个有趣的项目,想要测试一下,但是自己的设备没有对应的开发环境或者受制于自己的设备,不想或者不能去配置对应的开发环境,应该怎么办呢?这种情况下,其实…...
【C#联合halcon实现绘制ROI功能】
前言 C#联合halcon实现绘制ROI功能: C#联合Halcon,使用HDrawingObject、HDrawingObjectXld,绘制矩形、方向矩形、圆形、椭圆、自定义ROI。支持拖动、重设大小、选中,右键复制、粘贴、删除功能。 运行结果 代码 代码结构 MainFo…...
语言模型的革命:大型概念模型(LCM)的崛起
在人工智能领域,Meta最近推出的一项重大突破正在引起研究人员和开发者的广泛关注:大型概念模型(Large Concept Models,简称LCM)。这一创新彻底改变了我们对语言模型的理解,并为未来AI技术的进展指明了新的方…...
在C#中获取程序的命令行参数
实现此目的的一种方法是重写程序的Main方法并赋予其一个字符串数组参数,如下面的代码所示。 static void Main(string[] args) {foreach (string arg in args){lstArguments.Items.Add(arg);} } 这种方法是从 C 编程语言继承而来的。 我更喜欢下面的方法…...
R基于贝叶斯加法回归树BART、MCMC的DLNM分布滞后非线性模型分析母婴PM2.5暴露与出生体重数据及GAM模型对比、关键窗口识别
全文链接:https://tecdat.cn/?p38667 摘要:在母婴暴露于空气污染对儿童健康影响的研究中,常需对孕期暴露情况与健康结果进行回归分析。分布滞后非线性模型(DLNM)是一种常用于估计暴露 - 时间 - 响应函数的统计方法&am…...
小程序基础 —— 08 文件和目录结构
文件和目录结构 一个完整的小程序项目由两部分组成:主体文件、页面文件: 主体文件:全局文件,能够作用于整个小程序,影响小程序的每个页面,主体文件必须放到项目的根目录下; 主体文件由三部分组…...
bishengjdk-8
title: 深入探索 BishengJDK-8:技术魅力与优势尽显 date: 2024-12-29 category: blog tags:- BishengJDK-8- Java 开发- 性能优化- 技术剖析 sig: BishengJDK archives: 2024-12 author:- way_back summary: BishengJDK-8 作为一款备受瞩目的 JDK 版本,以…...
Android9.x SurfaceView源码分析
前言 本文是继Android 深入理解SurfaceView再次对SurfaceView进行源码分析。 看了下代码,上篇文章是基于Android7.x的,本篇基于Android9.x再次进行分析, Android从7.0开始支持SurfaceView动画,并建议7.0之后使用SurfaceView替代TextureView,这里主要在Android9.0上分析Su…...
分布式 IO 模块助力冲压机械臂产线实现智能控制
在当今制造业蓬勃发展的浪潮中,冲压机械臂产线的智能化控制已然成为提升生产效率、保障产品质量以及增强企业竞争力的关键所在。而分布式 IO 模块的应用,正如同为这条产线注入了一股强大的智能动力,开启了全新的高效生产篇章。 传统挑战 冲压…...
解决VMware的ubuntu22虚拟机没有网络
解决步骤 1.在 Windows 系统中,按 “WinR” 键,输入 “services.msc” 并回车,在服务列表中找到 “VMware DHCP Service” 和 “VMware NAT Service”,确保这两个服务已启动,若未启动则右键点击选择 “启动”…...
Linux arm 编译安装glibc-2.29
重要的话说三遍: !!!!!不要轻易自己去安装glibc!!!!! !!!!!不要轻易自己去安装glibc&a…...
Docker-构建自己的Web-Linux系统-镜像webtop:ubuntu-kde
介绍 安装自己的linux-server,可以作为学习使用,web方式访问,基于ubuntu构建开源项目 https://github.com/linuxserver/docker-webtop安装 docker run -d -p 1336:3000 -e PASSWORD123456 --name webtop lscr.io/linuxserver/webtop:ubuntu-kde登录 …...
linux 7.6安装mysql 8.0步骤如下
linux 7.6安装mysql 8.0步骤如下: 注意:在导入密钥的时候这个不行,可更换为 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023...
meshy的文本到3d的使用
Meshy官方网站: 中文官网: Meshy官网中文站 编辑 Opens in a new window 编辑www.meshycn.com Meshy AI 中文官网首页 英文官网: Meshy目前似乎还没有单独的英文官网,但您可以在中文官网上找到英文界面或相关英文资料。 链…...
抓取手机HCI日志
荣耀手机 1、打开开发者模式 2、开启HCI、ADB调试 3、开启AP LOG 拨号界面输入*##2846579##* 4、蓝牙配对 5、抓取log adb pull /data/log/bt ./...
如果你的网站是h5网站,如何将h5网站变成小程序-除开完整重做方法如何快速h5转小程序-h5网站转小程序的办法-优雅草央千澈
如果你的网站是h5网站,如何将h5网站变成小程序-除开完整重做方法如何快速h5转小程序-h5网站转小程序的办法-优雅草央千澈 h5如何转小程序 如果当年你们开发网站是用的h5但是没有开发小程序,也没有使用uniapp这样的混开框架,但是目前根据业务需…...
2024:踏平坎坷成大道,斗罢艰险又出发!
一、开篇 12月今年最后一个月了,相逢的人已走散,Q4的OKR已经定型了,很平淡无味、闲的无聊,提前写个年终总结吧。25年,再过一个月就35岁了,一个人来北京也已经11年了。年近末尾,思绪良多。回顾过…...
Qt For Android之环境搭建(Qt 5.12.11 Qt下载SDK的处理方案)
文章目录 一、Qt For Android运行示例二、个人理解及情况解析三、配置Android相关配置项3.1 安装简述3.2 安装Qt1.安装Qt第一步:启动Qt安装包程序2.Qt账号(注册)登录3.了解Qt开源使用义务4.指定Qt安装目录5.选择Qt安装内容6.接受“许可协议”…...
LLaMA详解
LLaMA 进化史 大规模语言模型(Large Language Model, LLM)的快速发展正在以前所未有的速度推动人工智能(AI)技术的进步。 作为这一领域的先行者, Meta在其LLaMA(Large Language Model Meta AI)系列模型上取得了一系列重大突破。 近日, Meta官方正式宣布推出LLaMA-3, 作为继LL…...
【学生管理系统】权限管理之用户管理
目录 6. 权限管理 6.1 环境搭建 6.1.1 数据库 6.1.2 后端环境 6.2 用户管理 6.2.1 查询所有用户(关联角色) 6.2.2 核心1:给用户授予角色 6. 权限管理 6.1 环境搭建 6.1.1 数据库 权限管理的5张表的关系 添加4张表 # 权限表&…...
基于Java+Springboot+Vue开发的旅游景区管理系统,实习作品
项目简介 该项目是基于JavaSpringbootVue开发的旅游景区管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的旅…...
人工智能及深度学习的一些题目
1、一个含有2个隐藏层的多层感知机(MLP),神经元个数都为20,输入和输出节点分别由8和5个节点,这个网络有多少权重值? 答:在MLP中,权重是连接神经元的参数,每个连接都有一…...
JavaFX FXML模式下的布局
常见布局方式概述 在 JavaFX FXML 模式下,有多种布局方式可供选择。这些布局方式可以帮助您有效地组织和排列 UI 组件,以创建出美观且功能良好的用户界面。常用布局容器及布局方式 BorderPane 布局 特点:BorderPane 将空间划分为五个区域&…...
在 Windows 11 下的 WSL - Ubuntu 24.04 中安装 CUDA 的记录
#记录工作 以下是基于CUDA官网给定命令在 Windows 11 下的 WSL - Ubuntu 24.04 中安装 CUDA 的记录: 一、准备工作 确保你的 Windows 11 系统已经成功启用 WSL 功能,并且已经安装了 Ubuntu 24.04 操作系统。同时,确保系统处于联网状态&#…...
Qt 12.28 day3
作业: 1】 思维导图 2】 在登录界面的登录取消按钮进行以下设置: 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&a…...
AISuite:提供了统一的跨 LLM API的开源 Python 库
1. 简介: AISuite是一个开源的Python库,旨在提供一个统一的接口来调用不同的大型语言模型(LLM)API。这个工具由吴恩达(Andrew Ng)领导开发,目的是简化AI模型的调用过程,使得开发者能…...
springMVC-请求响应
springmvc——一 站式web框架,核心是处理http请求响应。 前后端分离:需要序列化,服务端把数据序列化成字符串或者流给前端,前端又把json转成对象,前端的叫反序列化。前端把数据序列化转成字符串给服务器,服…...
【代码分析】Unet-Pytorch
1:unet_parts.py 主要包含: 【1】double conv,双层卷积 【2】down,下采样 【3】up,上采样 【4】out conv,输出卷积 """ Parts of the U-Net model """import torch im…...
uni-app开发-识图小程序-个人中心页面
目录 一:功能描述 二:代码实现 一:功能描述 个人中心中心主要包含用户登录信息,退出登录,图像识别记录,分类识别记录,分享记录以及小程序介绍信息。用户登录状态下可以看到图形识别记录,分类识别记录和分享记录,未登录状态只能看到介绍信息,点击未登录文字会触发…...
C++小游戏
【欢迎关注编码小哥,学习更多实用的编程方法和技巧】 设计一个桌面游戏是一个有趣且富有挑战性的项目。下面是一个简单的C桌面游戏的设计思路和示例代码。我们将创建一个简单的“猜数字”游戏,玩家需要在有限的尝试次数内猜测一个随机生成的数字。 游戏…...
Flutter封装一个三方ViewPager学习
Flutter如何实现一个增强的 PageView,支持自定义页面切换动画。 前置知识点学习 CrossAxisAlignment CrossAxisAlignment 是 Flutter 中用于控制布局子组件在交叉轴(cross axis)方向上的对齐方式的一个枚举类。它主要在 Flex 布局模型中使…...
【算法】复杂性理论初步
六、算法复杂性初步 重要的复杂性类 P P P 的定义 多项式时间内可解的问题 若 L ∈ P L∈P L∈P,则存在确定性多项式时间的图灵机 M M M,使得 M ( x ) 1 ⟺ x ∈ L M(x)1⟺x∈L M(x)1⟺x∈L N P NP NP 的定义 多项式时间内可验证验证解的正确性 &…...
vscode实用插件(持续更新)
目录 Git History Diff Git Graph Error Lens Git History Diff 用于将当前分支的某个文件夹与远程分支的相同文件夹做对比,方便代码评审!解决了为了一个问题而多次commit,导致代码不好评审,即不晓得和远程分支相比࿰…...
使用Lodash工具库的orderby和sortby进行排序的区别
简介 _.orderBy 和 _.sortBy 是 Lodash 库中用于排序数组的两个函数。 区别 _.orderBy 允许你指定一个或多个属性来排序,并为每个属性指定排序方向(升序或降序)。默认所有值为升序排,指定为"desc" 降序,…...
胡闹厨房练习(三)
ScriptableObject 一、初步了解 1、实质:是一种特殊类型的Unity对象, 2、作用:用于存储大量数据,而不必依附于游戏场景中的某个GameObject。 3、特点: 可以在不增加场景中对象数量的情况下,管理和存储复杂的数据结构、配置信息、游戏状态等。 4、适用:非常适合用来…...
Postman接口测试01|接口测试基础概念、http协议、RESTful风格、接口文档
目录 一、接口测试基础概念 1、什么是接口 2、接口的类型 3、什么是接口测试 4、为什么要做接口测试 5、接口测试的实现方式 6、什么是自动化接口测试? 二、接口返回的数据格式 1、三种格式 2、Json 三、接口协议 1、webservice协议 2、dubbo协议 3、…...
算法进阶:贪心算法
贪心算法是一种简单而直观的算法思想,它在每一步选择中都采取在当前状态下最优的选择,以期望最终得到全局最优解。贪心算法通常适用于一些具有最优子结构的问题,即问题的最优解可以通过一系列局部最优解的选择得到。 贪心算法的基本思路是&a…...
深度学习笔记(6)——循环神经网络RNN
循环神经网络 RNN 核心思想:RNN内部有一个“内部状态”,随着序列处理而更新 h t f W ( h t − 1 , x t ) h_tf_W(h_{t-1},x_t) htfW(ht−1,xt) 一般来说 h t t a n h ( W h h h t − 1 W x h x t ) h_ttanh(W_{hh}h_{t-1}W_{xh}x_t) httanh(Whhht−1Wxhxt…...
电商项目高级篇07-redisson分布式锁
redisson分布式锁 1、引入maven依赖2、config类3、可重入锁设计 1、引入maven依赖 <!--引入redisson--><dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.12.0</version></depend…...
STM32中断详解
STM32中断详解 NVIC 中断系统中断向量表相关寄存器中断优先级中断配置 外部中断实验EXTI框图外部中断/事件线映射中断步骤初始化代码实现 定时器中断通用定时器相关功能标号1:时钟源标号 2:控制器标号 3:时基单元 代码实现 NVIC 中断系统 STM…...
KNN分类算法 HNUST【数据分析技术】(2025)
1.理论知识 KNN(K-Nearest Neighbor)算法是机器学习算法中最基础、最简单的算法之一。它既能用于分类,也能用于回归。KNN通过测量不同特征值之间的距离来进行分类。 KNN算法的思想: 对于任意n维输入向量,分别对应于特征…...
【Win11】安装 VMware17 和 Ubuntu
【Win11】安装 VMware17 和 Ubuntu 15 版本和 Win11 家庭版间的兼容应该有 BUG,请直接跳至【VMware 17】 安装【VMware 15】 本来是按如下资源链接安装的,但发现 15 版本和 Win11 家庭版间的兼容应该有 BUG,在安装并关闭 Hyper-Vÿ…...
Jmeter快速入门
目录 1.安装Jmeter 1.1.下载 1.2.解压 1.3.运行 2.快速入门 2.1.设置中文语言 2.2.基本用法 1.安装Jmeter Jmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。 1.1.下载 可以Apache Jmeter官网下载,地址…...
Android Studio2024版本安装环境SDK、Gradle配置
一、软件版本,安装包附上 👉android-studio-2024.1.2.12-windows.exe👈 👉百度网盘Android Studio安装包👈 (若下载连链接失效可去百度网盘链接下载) 二、软件安装过程 三、准备运行…...
嵌入式单片机窗口看门狗控制与实现
窗口看门狗 注意:WWDG外设没有独立的时钟源,而是挂载在APB1总线下,APB1总线外设时钟为42MHZ。 了解WWDG外设的使用流程,可以参考stm32f4xx_wwdg.c的开头注释,具体流程如下图所示...
[单master节点k8s部署]43.全链路监控(二)
部署pinpoint服务端 这里安装的是pinpoint-docker,可以从GitHub - pinpoint-apm/pinpoint-docker: Officix 下载。通过readme可以看到,该项目提供的镜像: Pinpoint-Web ServerPinpoint-CollectorPinpoint-AgentPinpoint-FlinkPinpoint-Hba…...
Apache Doris 创始人:何为“现代化”的数据仓库?
在 12 月 14 日的 Doris Summit Asia 2024 上,Apache Doris 创始人 & PMC 成员马如悦在开场演讲中,围绕“现代化数据仓库”这一主题,指出 3.0 版本是 Apache Doris 研发路程中的重要里程碑,他将这一进展总结为“实时之路”、“…...
json的作用?
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有简洁、易读、易于解析和生成等特点,在前后端数据交互、配置文件、数据存储等多个领域发挥着重要作用,以下是具体介绍: JSON 的作用 数据…...
ChatGPT是如何生成长文的
说实话,现在我们对chatGPT的最深的印象就是他是一个各方面知识都比较全面的机器助手,我们的问题他都能生成答案,不过大家发现没有,它生成相对应的长文的时候,都是一个词一个词蹦出来的,有的时候是一个个词组…...
微服务——部署与运维
1、你是否有将 Java 微服务部署到容器(如 Docker)中的经验?请描述一下部署过程和相关注意事项。 部署过程: 编写 Dockerfile,定义基础镜像(如 openjdk)、应用 JAR 包路径和启动命令。构建镜像…...