【MOJO】Modular语言安装和测试

news2024/10/7 13:26:30

目录

一、Mojo介绍

Linux​

Mac

二、安装Mojo SDK

三、mojo代码测试

3.1、在 REPL 中运行代码​

3.2、构建并运行 Mojo 源文件​

运行mojo文件​

构建可执行二进制文件​

四、VSCode安装



一、Mojo介绍

在学习Rust语言的过程中无意发现了Modular语言,语言的后缀为.mojo,这个语言通过调研还截止现在还不够成熟,不过mojo团队火力推进中,具备兼容Python语言的语法特性,并具有Rust语言的安全性和高性能,让人耳目一新的样子。

官网和社区地址如下

安装SDK | Mojo中文网

Mojo开发者社区🔥

Mojo 尚不适用于 Windows,您可以在 Linux 容器或远程系统中安装, 或者使用windows中的linux子系统,参考linux安装方式进行安装。

Linux

系统要求:

  • Ubuntu 20.04 及更高版本
  • x86-64 CPU 和最低 4 GiB RAM
  • Python 3.8 - 3.10
  • g++ 或 clang++ 编译器

请注意:目前仅支持Ubuntu,以下安装步骤在Ubuntu 22.04测试通过

Mac

带着好奇尝试了一下Modular的安装和测试,主要记录安装步骤,不过这些在mojo社区也能找到。

模块和包 | Mojo中文网这里我以MacOS安装为例进行安装,我们看到官网写的步骤很详细按照执行即可

二、安装Mojo SDK

1、创建 GitHub 代码示例的分支。GitHub code examples.
2、安装 VS Code、Mojo 扩展插件和 GitHub Codespaces 扩展插件等,下文详细说明。
3、在 VS Code 中,按 Cmd+Shift+P 并选择 Codespaces:创建新 Codespace。 然后选择您分叉的“mojo”存储库,并选择具有 32 GB RAM 的实例类型。
4、安装Modular CLI:

curl https://get.modular.com | \
  MODULAR_AUTH=mut_16132486efc04824ad90e4d5a2afbaed \
  sh -

5、安装Mojo SDK

安装之前建议配置安装路径,默认安装到$HOME/.modular目录下

export MODULAR_HOME="$HOME/language/modular"

modular install mojo

6、如果安装过程中切换网络或者安装失败执行

 安装失败后先执行modular clean,再执行modular install mojo

modular clean
modular install mojo

7、配置Mojo环境变量

安装完Mojo SDK需要配置环境变量:MODULAR_HOME,PATH

MODULAR_HOME:Modular安装路径设置

PATH:执行mojo需要的可执行文件bin目录

如果你使用bash shell 执行如下命令

echo 'export MODULAR_HOME="$HOME/language/modular"' >> ~/.bashrc

echo 'export PATH="$MODULAR_HOME/pkg/packages.modular.com_mojo/bin:$PATH"' >> ~/.bashrc

source ~/.bashrc

如果你使用zsh shell 执行如下命令

echo 'export MODULAR_HOME="$HOME/language/modular"' >> ~/.zshrc

echo 'export PATH="$MODULAR_HOME/pkg/packages.modular.com_mojo/bin:$PATH"' >> ~/.zshrc

source ~/.zshrc

 8、更新Mojo

Mojo 是一项正在进行的工作,定期会发布 Mojo 语言和 SDK 工具的更新。有关每个版本的信息,请参阅 Mojo 更新日志。

要检查您当前的 Mojo 版本,请使用以下选项:--version

mojo --version

要更新到最新的Mojo版本,请使用以下命令:modular update

modular update mojo

三、mojo代码测试

3.1、在 REPL 中运行代码

首先,让我们尝试在 Mojo REPL 中运行一些代码,它允许您直接在命令提示符中编写和运行 Mojo 代码:

1、要启动 REPL 会话,请在终端中输入 mojo 并按 Enter。

2、然后输入 print("Hello, world!") 并按 Enter 两次(需要一个空行来指示表达式的结束)。

像这样:

$ mojo
Welcome to Mojo! 🔥

Expressions are delimited by a blank line.
Type `:quit` to exit the REPL and `:mojo help` for further assistance.

1> print("Hello, world!")
2.
Hello, world!

您可以在 REPL 中编写任意数量的代码。 您可以按 Enter 键开始新行并继续编写代码,当您希望 Mojo 评估代码时,请按 Enter 两次。 如果有需要打印的内容,Mojo 会打印它,然后将提示返回给您。

REPL 主要用于短期实验,因为代码不会保存。 所以当你想编写一个真正的程序时,你需要将代码编写在.mojo源文件中。

3.2、构建并运行 Mojo 源文件

现在让我们用源文件打印“Hello, world”。 Mojo 源文件使用 .mojo 或 .🔥 文件扩展名进行标识。 您可以通过将 Mojo 文件传递给 mojo 命令来快速执行该文件,也可以使用 mojo build 命令构建已编译的可执行文件。 让我们两者都尝试一下。

运行mojo文件

编写Mojo代码并执行:

1、创建一个名为 hello.mojo (或 hello.🔥)的文件并添加以下代码:

fn main():
   print("Hello, world!")

这就是您所需要的。 保存文件并返回到您的终端。

2、使用 mojo 命令运行它:

mojo hello.mojo

Hello, world!

构建可执行二进制文件

构建并运行可执行文件: 1、使用 build 命令创建独立的可执行文件:

mojo build hello.mojo

创建与 .mojo 文件同名的可执行文件,但您可以使用 -o 选项更改它。 2、运行可执行文件:

./hello

该可执行文件与 C 或 C++ 可执行文件一样在您的系统上运行。

更多mojo语言语法和模块见mojo中文网:Mojo语法基础 | Mojo中文网

Mojo GitHub:https://github.com/modularml/mojo

四、VSCode安装

vscode是mojo推荐的IDE,主要还可以远程调试代码,支持Rust,Go,Python,C/C++无所不能。

下载地址:Visual Studio Code - Code Editing. Redefined

插件安装:

Mojo:Mojo for Visual Studio Code,用来提供mojo开发编译环境

GitHub Codespaces:代码提交github仓库

Remote- SSH:远程代码开发插件

安装完后需要重启插件:

快捷键:Ctrl+shift+p

输入:>Reload Window

远程办公vscode插件安装文章推荐:vscode连接远程服务器(傻瓜式教学)-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言——编写程序,判断从键盘输入字符的类型(大写字母、小写字母、数字、其他四类)

#define _CRT_SECURE_NO_WARNINGS 1#include <ctype.h> #include <stdio.h> int main() { char c;printf("请输入一个字符: \n");scanf("%c",&c);if (isupper(c)) {printf("这是一个大写字母\n");} else if (islower(c)) {pr…

基于若依的ruoyi-nbcio流程管理系统修改代码生成的sql菜单id修改成递增id(谨慎修改,大并发分布式有弊端)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 1、我看我的原先系统生成的代码id都是很长如下&#xff1a; -- 菜单 SQL insert into sys_menu (menu_id…

​3ds Max插件CG MAGIC图形板块为您提升线条效率!

​通过3ds Max软件进行绘图操作时&#xff0c;大多绊住各位设计师们作图速度的往往都是一些细微的琐事&#xff0c;重复一变一变的调整修改等问题。 今天说到这个绘图线条来回调整解决方法就是3ds Max插件CG MAGIC。 Max插件CG MAGIC作为一款智能化的辅助插件&#xff0c;致力于…

MFC设置单选按钮点击自己可以可选和不可选

mfc是c的一个框架&#xff0c;可谓是经久不衰。最近博主遇到一个问题&#xff0c;就是单选按钮点击自己可以设置可选和不可选&#xff0c;貌似类似复选框一样&#xff0c;但领导分发的任务上要求的是用单选按钮实现复选框这种类似功能&#xff0c;实现效果类似如下图&#xff1…

阿里云Elasticsearch Severless 如何做到成本降低50%

阿里云检索分析服务 Elasticsearch 版云上演进之路 2017年&#xff0c;阿里云与Elastic 开启开源战略合作&#xff0c;正式发布阿里云检索分析服务 Elasticsearch 版 &#xff0c;100%兼容开源Elasticsearch&#xff0c;开箱即用&#xff0c;提供开放兼容的云上检索分析服务。…

MySql使用游标批量更新字段为空的记录

目的&#xff1a;因为工作中需要模拟大批量的测试数据、发现有部分历史数据中的唯一编号的字段内容为空&#xff0c;因此需要按顺序填充上对应的字段内容&#xff0c;经查询mysql使用游标方式能快速实现此需求。 具体操作步骤如下&#xff1a;打开Navicate for MySQL软件、连接…

ARKit增加一个盒子

ARKit增加一个盒子 体验一下ARKit的能力&#xff0c;在室内随便加点小球&#xff0c;然后在AR中显示出来。 效果如下图&#xff1a; 以下为操作流程。 新建项目 新建一个空项目&#xff0c;项目一定要选择 Augmented Reality App&#xff0c;能够省很多的事。 之后的 conte…

【日常总结】如何禁止浏览器 http自动跳转成https

一、场景 二、问题 三、解决方案 3.1 chrome 浏览器 3.2 edge 浏览器&#xff1a; 3.3 Safari 浏览器 3.4 Firefox 浏览器 一、场景 公司网站 http:// 谷歌浏览器中自动转换成 https:// 导致无法访问 二、问题 nginx配置ssl 443接口&#xff0c; https:// 可以访问&…

java操作富文本插入到word模板

最近项目有个需求&#xff0c;大致流程是前端保存富文本&#xff08;html的代码&#xff09;到数据库&#xff0c;后台需要将富文本代码转成带格式的文字&#xff0c;插入到word模板里&#xff0c;然后将word转成pdf&#xff0c;再由前端调用接口下载pdf文件&#xff01; 1、思…

如何一键消除图片里的水印?图片去水印教程一看就会!

如何一键消除图片水印&#xff1f;在现今的数字时代&#xff0c;我们常常会遇到带有水印的图片&#xff0c;而传统的方法往往费时且复杂&#xff0c;让我们感到困扰。那么如何一键消除图片水印呢&#xff1f;今天&#xff0c;我们为您推荐一款非常实用的去水印软件&#xff0c;…

MySQL的体系结构与SQL的执行流程

文章目录 前言体系结构SQL语句的执行流程1、连接MySQL2、查询缓存3、解析SQL语句4、优化SQL语句5、执行SQL语句 总结 前言 如果你在使用MySQL时只会写sql语句的&#xff0c;那么你应该看一下《MySQL优化的底层逻辑》。如果你只了解到sql是如何优化的&#xff0c;那么你应该通过…

想问问各位大佬,网络安全这个专业普通人学习会有前景吗?

网络安全是一个非常广泛的领域&#xff0c;涉及到许多不同的岗位。这些岗位包括安全服务、安全运维、渗透测试、web安全、安全开发和安全售前等。每个岗位都有自己的要求和特点&#xff0c;您可以根据自己的兴趣和能力来选择最适合您的岗位。 渗透测试/Web安全工程师主要负责模…

鼠标拖拽问题,不选中文本不触发单击事件

文章目录 1. 为什么鼠标单击的时候触发了mousemove事件&#xff1f;明明鼠标没有移动2. 鼠标拖拽元素怎么能不触发单击事件&#xff1f;怎么处理鼠标在元素内的相对定位&#xff0c;而不是每次定位到左上角&#xff1f;方式一&#xff1a;拖拽的元素没有注册click监听就不会触发…

k8s集群资源监控工具metrics-server安装

1、下载镜像 docker pull swr.cn-east-2.myhuaweicloud.com/kuboard-dependency/metrics-server:v0.6.22、在任一一个主节点上创建角色&#xff0c;执行下面语句 kubectl create clusterrolebinding kube-proxy-cluster-admin --clusterrolecluster-admin --usersystem:kube-…

免费获取GPT-4的五种工具

不可否认&#xff0c;由OpenAI带来的GPT-4已是全球最受欢迎的、功能最强大的大语言模型&#xff08;LLM&#xff09;之一。大多数人都需要使用ChatGPT Plus的订阅服务去访问GPT-4。为此&#xff0c;他们通常需要每月支付20美元。那么问题来了&#xff0c;如果您不想每月有这笔支…

移动应用程序管理的内容、原因和方式

移动应用程序管理&#xff08;MAM&#xff09;是一个术语&#xff0c;指的是管理应用程序的整个生命周期&#xff0c;包括从设备安装、更新和卸载应用程序&#xff0c;除了在整个生命周期内管理设备外&#xff0c;MAM 还包括保护应用访问的数据&#xff0c;以及在设备上发现恶意…

vue2 element el-transfer穿梭框组件支持拖拽及排序 已封装,随取随用

项目场景&#xff1a; 项目中有个功能用到穿梭框组件&#xff0c;新版本需要支持穿梭框组件排序&#xff0c;由于element2版本中的穿梭框组件本身不支持排序功能 在此不仅需要支持随意更换顺序&#xff0c;还支持从一侧拖拽至另一侧&#xff0c;具体功能效果图如下&#xff1…

Y-MODEM协议定制上位机

最近在使用N32G031和STM32F10X系列单片机进行IAP&#xff0c;使用的是Ymodem协议。单片机上的软件已经完成了&#xff0c;一般是使用secureCRT这样的工具作为上位机来进行测试&#xff0c;后来想做一个定制化的简单的上位机。在网上找了下资料&#xff0c;以下这篇文章写的使用…

能量不够,AI帮助

问CHAT&#xff1a;有关工程管理的中文参考文献 CHAT回复&#xff1a; 1. 余庆麟. (2009). 工程项目管理[M]. 北京&#xff1a; 机械工业出版社. 2. 刘宁. (2013). 工程建设管理[M]. 北京&#xff1a;清华大学出版社. 3. 谈刚&#xff0c;陈嘉春&#xff0c;尚雅凡. (2014).…