【MOJO】Modular语言安装和测试

目录

一、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"' >> ~/.bashrcecho 'export PATH="$MODULAR_HOME/pkg/packages.modular.com_mojo/bin:$PATH"' >> ~/.bashrcsource ~/.bashrc

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

echo 'export MODULAR_HOME="$HOME/language/modular"' >> ~/.zshrcecho 'export PATH="$MODULAR_HOME/pkg/packages.modular.com_mojo/bin:$PATH"' >> ~/.zshrcsource ~/.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.mojoHello, 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.mzph.cn/news/172263.shtml

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

相关文章

nginx基础篇学习

一、nginx编译安装 1、前往nginx官网获取安装包 下载安装包 2、解压 3、安装 进入安装包 安装准备:nginx的rewrite module重写模块依赖于pcre、pcre-devel、zlib和zlib-devel库,要先安装这些库 安装: 编译: 启动&#xff…

web前端之vue和echarts的堆叠柱状图顶部显示总数、鼠标悬浮工具提示、设置图例的显示与隐藏、label、legend、tooltip

MENU 效果图htmlJavaScripstyle解析 效果图 html <template><div><div><div id"idStackedColumnChart" style"width: 100%; height: 680px"></div></div></div> </template>JavaScrip export default {…

python-opencv轮廓检测(外轮廓检测和全部轮廓检测,计算轮廓面积和周长)

python-opencv轮廓检测&#xff08;外轮廓检测和全部轮廓检测&#xff0c;计算轮廓面积和周长&#xff09; 通过cv2.findContours&#xff0c;我们可以进行轮廓检测&#xff0c;当然也有很多检测模式&#xff0c;我们可以通过选择检测模式&#xff0c;进行外轮廓检测&#xff…

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(二)

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(二) mp4媒体流数据 #include <ros/ros.h> #include <signal.h> #include <sensor_msgs/Image.h> #include <message_filters/subscriber.h> #include <message_filters/synchroniz…

从零开始学习管道:管道程序的优化和文件描述符继承问题

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容管道后续的完善&#xff0c;以及解决管道继承多个文件描…

【Amazon】基于Amazon提供的托管式EKS通过eksctl命令部署Kubernetes集群

文章目录 一、使用CloudFormation创建堡垒机二、安装AWS CLI命令行工具三、安装eksctl命令行工具四、创建集群角色4.1 集群服务角色创建4.2 集群节点组角色创建 五、创建 EKS集群六、登录EKS控制台七、参考链接 一、使用CloudFormation创建堡垒机 导航至CloudFormation&#xf…

python类和对象

1.使用对象组织数据 class Student:nameNone #记录名字 stu1Student() #创建对象 stu1.name"abc" #为对象属性赋值2.类的定义和使用 2.1成员方法的定义语法 传参的时候self是透明的&#xff0c;不用管 class Stu:nameNonedef sayHi(self):print(f"你好&#x…

【数据中台】开源项目(1)-LarkMidTable

LarkMidTable 是一站式开源的数据中台&#xff0c;实现中台的 基础建设&#xff0c;数据治理&#xff0c;数据开发&#xff0c;监控告警&#xff0c;数据服务&#xff0c;数据的可视化&#xff0c;实现高效赋能数据前台并提供数据服务的产品。 系统演示地址 &#xff1a; www.l…

Windows 7隐藏用户测试

请注意Window 7是在虚拟机上安装的&#xff0c;ip是192.168.0.108。 下边都是在虚拟机Window 7上操作&#xff0c;直到最后远程连接才在自己本机Windows 11上操作。 需要同时按下Windowsr,然后输入cmd&#xff0c;再点击确定。 在命令上里边输入net user可以显示一下用户。 …

C语言学习笔记之函数篇

与数学意义上的函数不同&#xff0c;C语言中的函数又称为过程&#xff0c;接口&#xff0c;具有极其重要的作用。教科书上将其定义为&#xff1a;程序中的子程序。 在计算机科学中&#xff0c;子程序&#xff08;英语&#xff1a;Subroutine, procedure, function, routine, me…

React 入门使用 (官方文档向 Part2)

文章目录 用 State 响应输入声明式地考虑 UI步骤 1&#xff1a;定位组件中不同的视图状态步骤 2&#xff1a;确定是什么触发了这些状态的改变步骤 3&#xff1a;通过 useState 表示内存中的 state步骤 4&#xff1a;删除任何不必要的 state 变量步骤 5&#xff1a;连接事件处理…

059-第三代软件开发-巧用工控板LED指示灯引脚

第三代软件开发-巧用工控板LED指示灯引脚 文章目录 第三代软件开发-巧用工控板LED指示灯引脚项目介绍巧用工控板LED指示灯引脚第一种方式第二种方式 总结 关键字&#xff1a; Qt、 Qml、 Power、 继电器、 IO 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项…

video标签在h5中被劫持问题

将video的视频链接转为blob export const encryptionVideo (options: URL) > {return new Promise((resolve, reject) > {window.URL window.URL || window.webkitURL;var xhr new XMLHttpRequest();xhr.open(GET, options.url, true);xhr.responseType blob;xhr.onl…

圆通速递单号查询入口,以表格的形式导出详细物流信息

批量查询圆通速递单号的物流信息&#xff0c;并以表格的形式导出单号的详细物流信息。 所需工具&#xff1a; 一个【快递批量查询高手】软件 圆通速递单号若干 操作步骤&#xff1a; 步骤1&#xff1a;运行【快递批量查询高手】软件&#xff0c;第一次使用的伙伴记得先注册&…

C++初识类和对象

前言 上一期我们介绍了一些C入门的基础知识&#xff0c;本期我们来介绍面向对象。初步认识一下面向对象和面向过程、类、以及封装&#xff01; 本期内容介绍 面向过程和面向对象 类的引入 类的定义 类的访问限定符和封装 类的作用域 类的实例化 类对象模型 this指针 一、面向…

基本数据结构二叉树(1)

目录 1.树概念及结构 1.1树的概念 1.2 树的相关概念 1.3 树的表示 1.4 树在实际中的运用&#xff08;表示文件系统的目录树结构&#xff09; 2.二叉树概念及结构 2.1概念 2.2现实中的二叉树&#xff1a; 2.3 特殊的二叉树&#xff1a; 2.5 二叉树的存储结构 2. 链式存…

【多线程】-- 03 龟兔赛跑案例线程创建方法之三:Callable接口

多线程 2 线程创建 【续】2.2 龟兔赛跑案例 首先需要一个赛道距离&#xff0c;然后会距离终点越来越近判断比赛是否结束打印出胜利者龟兔赛跑开始故事中是乌龟获胜&#xff0c;兔子需要睡觉&#xff0c;所以要模拟兔子睡觉最终&#xff0c;乌龟赢得比赛 package com.duo.de…

C语言数据类型和变量

# C语言数据类型和变量 # 数据类型介绍 C语⾔提供了丰富的数据类型来描述⽣活中的各种数据。使⽤整型类型来描述整数&#xff0c;使⽤字符类型来描述字符&#xff0c;使⽤浮点型类型来描述⼩数。所谓“类型”&#xff0c;就是相似的数据所拥有的共同特征&#xff0c;编译器只有…

MySQL进阶知识

目录 MySQL的Linux安装 存储引擎 MySQL的体系结构 存储引擎简介 存储引擎特点 InnoDB 逻辑存储结构 MyISAM Memory 对比 存储引擎选择 索引 介绍 索引结构 BTree索引 Hash索引 索引分类 索引语法 SQL性能分析 SQL执行频率 慢查询日志 profile详情 expla…

CRC 循环冗余检测

目录 一、基础知识1.异或运算xor2.模2算术&#xff08;1&#xff09;模2加法和减法&#xff08;2&#xff09;模2乘法&#xff08;3&#xff09;模2除法 二、CRC循环冗余检测1.背景2.原理3.求R 一、基础知识 1.异或运算xor 异或&#xff0c;顾名思义&#xff0c;只有当两个数…