Mojo 学习 —— 环境配置
介绍
Mojo
是一种专为人工智能开发而设计的现代编程语言。它集成了 Python
的易用性和 C
语言的性能,旨在弥补人工智能软件开发研究与生产之间的差距。
反正我看他们说的是天花乱坠,是 Python
的几千几万倍,号称要 “与Python
一样易于使用,但与 Rust
一样强大和快速。”
那我就来简单的学习一下吧,跟着 Mojito
一起学起来
软件安装
先安装 modular
curl -s https://get.modular.com | sh -
然后登录到你的 module 账户,命令行运行时会输出一个链接,用浏览器打开并登录到你的账户即可
modular auth
然后,用 modular
来安装 Mojo SDK
modular install mojo
安装成功会输出类似下面的信息,提示你如何添加环境变量
Mojo's Python virtual environment created at /home/dengxsh/.modular/pkg/packages.modular.com_mojo/venv
If you are using ZSH (default on macOS), run the following commands:
echo 'export MODULAR_HOME="/home/dengxsh/.modular"' >> ~/.zshrc
echo 'export PATH="/home/dengxsh/.modular/pkg/packages.modular.com_mojo/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
If you are using bash, run the following commands:
BASHRC=$( [ -f "$HOME/.bash_profile" ] && echo "$HOME/.bash_profile" || echo "$HOME/.bashrc" )
echo 'export MODULAR_HOME="/home/dengxsh/.modular"' >> "$BASHRC"
echo 'export PATH="/home/dengxsh/.modular/pkg/packages.modular.com_mojo/bin:$PATH"' >> "$BASHRC"
source "$BASHRC"
如果已经安装过比较旧的版本,需要升级一下
modular update mojo
如果提示无法升级,可能需要更新 modular
# Ubuntu
sudo apt update
sudo apt install modular
# mac
brew update
brew upgrade modular
查看安装的版本
mojo --version
mojo 24.2.1 (2f0dcf11)
环境配置
Mojo SDK
包含了本地 Mojo
开发所需的一切,包括标准库和 命令行界面(CLI
),命令行不适合编写代码
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 Mojo!')
Hello Mojo!
2> :quit
Process 2835179 exited with status = 9 (0x00000009) killed
所以官方提供了 vscode
的插件,具有语法高亮、代码补齐和 API
提示等功能
新建一个 hello.mojo
文件,并键入如下代码
def main():
print("Hello Mojo!")
然后在终端运行
mojo hello.mojo
# Hello Mojo!
或者直接编译成二进制可执行文件
mojo build hello.mojo
./hello
# Hello Mojo!
也可以使用 jupyter
。在 vscode
中安装 jupyter
插件,然后新建一个 .ipynb
文件,并选择 mojo
内核
注意:不同于
Python
,mojo
需要一个main
函数作为入口。在命令行界面和jupyter
中可以不用,但是打印变量需要使用
如果只是想编写简单的测试代码,可以使用官方提供的 Playground
链接地址:
https://docs.modular.com/mojo/playground
简单测试
导入 Python
的标准库
from python import Python
var os = Python.import_module("os")
print(os.listdir())
# ['packages', 'demo.py', 'demo.txt', 'demo.ipynb', 'llama2.mojo', 'hello.mojo']
导入第三方模块,如 numpy
from python import Python
def main():
var np = Python.import_module("numpy")
var a = np.array([1, 2, 3])
print(a)
# <IntegerArray>
# [1, 2, 3]
# Length: 3, dtype: Int64
如果在导入第三方模块时出现类似下面的报错信息
Unhandled exception caught during execution
Error: Unable to import required dependencies:
numpy: Error importing numpy: you should not try to import numpy from
its source directory; please exit the numpy source tree, and relaunch
your python interpreter from there.
需要设置一下 Mojo
使用的 Python
库的路径
export MOJO_PYTHON_LIBRARY="$(find $CONDA_PREFIX/lib -iname 'libpython*.[s,d]*' | sort -r | head -n 1)"
# zsh
echo "export MOJO_PYTHON_LIBRARY=$MOJO_PYTHON_LIBRARY" >> ~/.zshrc
# bash
echo "export MOJO_PYTHON_LIBRARY=$MOJO_PYTHON_LIBRARY" >> ~/.bashrc
或者检查一下 Mojo
链接的 Python
是不是指向你所使用的 Python
/home/dengxsh/.modular/pkg/packages.modular.com_mojo/venv/bin/python3
lrwxrwxrwx 1 dengxsh dengxsh 36 Apr 24 21:34 /home/dengxsh/.modular/pkg/packages.modular.com_mojo/venv/bin/python3 -> /data/dengxsh/miniconda3/bin/python3
如果指向不对,可以卸载 Mojo
,同时切换当前环境为你想要的 Python
环境,然后再重新安装即可。