正在启动SageMath

现在,我们假设您已在系统上正确安装了SageMath。本节快速解释如何从命令行启动Sage控制台和Jupyter笔记本。

如果你确实安装了Windows版本或MacOS应用程序,你的桌面或启动菜单上应该有可用的图标。否则,强烈建议您为Sage创建快捷方式,如中“安装步骤”部分的第6部分所示 安装步骤 。假设您有这个快捷方式,运行

sage

在控制台中启动Sage会话。要退出会话,请输入 quit 然后按下 <Enter>

要启动Jupyter笔记本而不是Sage控制台,请运行以下命令

sage -n jupyter

与其只是 sage 。退出Jupyter Notebook出版社 <Ctrl> + <c> 在启动该命令的控制台中执行两次。

您可以向该命令传递额外的参数。例如,

sage -n jupyter --port 8899

将在与默认端口(8888)不同的端口上运行Jupyter服务器。特别是在WSL上,这非常有用,因为Jupyter可能无法检测默认端口是否已被运行在Windows中的另一个Jupyter实例占用。

环境变量

Sage在运行时使用以下环境变量:

  • DOT_SAGE -这是用户具有读写访问权限的目录,Sage在其中存储多个文件。默认位置为 $HOME/.sage/

  • SAGE_STARTUP_FILE -包含每次启动Sage时要执行的命令的文件。缺省值为 $DOT_SAGE/init.sage

  • BROWSER -在大多数平台上,Sage会检测运行Web浏览器的命令,但如果这似乎在您的计算机上不起作用,请将此变量设置为适当的命令。

  • TMPDIR -该变量由Python使用,因此由Sage使用;它给出了应该存储临时文件的目录。这包括笔记本使用的文件。某些浏览器的安全设置限制了它们将访问的文件的位置,用户可能需要设置此变量来处理这种情况。

  • 有关https://docs.python.org/3/using/cmdline.html#environment-variables使用的更多变量(不是详尽的列表),请参见Python.在Python3.11或更高版本中,还可以通过运行以下命令来获取简要摘要 python3 --help-env

远程使用Jupyter笔记本电脑

如果在远程计算机上安装了Sage, ssh Access,您可以使用如下命令启动Jupyter笔记本

ssh -L localhost:8888:localhost:8888 -t USER@REMOTE sage -n jupyter --no-browser --port=8888

哪里 USER@REMOTE 需要替换为远程计算机的登录详细信息。这使用本地端口转发将您的本地计算机连接到远程计算机。该命令会将URL打印到控制台,您可以将该URL复制并粘贴到Web浏览器中。

请注意,这假设可能存在于服务器和客户端之间的防火墙允许端口8888上的连接。查看有关Internet上的端口转发的详细信息,例如https://www.ssh.com/ssh/tunneling/example.

WSL安装后步骤

如果你已经在WSL上从源代码安装了SageMath,你还可以做几个额外的步骤来让你的生活更轻松:

创建笔记本启动脚本

如果您计划使用JupyterLab,请先安装它。

现在创建一个名为 ~/sage_nb.sh 包含以下行,并填写所需起始目录的正确路径和 SAGE_ROOT

#!/bin/bash
# Switch to desired windows directory
cd /mnt/c/path/to/desired/starting/directory
# Start the Jupyter notebook
SAGE_ROOT/sage --notebook
# Alternatively you can run JupyterLab - delete the line above, and uncomment the line below
#SAGE_ROOT/sage --notebook jupyterlab

使其可执行:

chmod ug+x ~/sage_nb.sh

运行它以测试:

cd ~
./sage_nb.sh

Jupyter(Lab)服务器应该在终端窗口中启动,并且您的Windows浏览器应该在您指定的目录中打开一个显示Jupyter或JupyterLab起始页面的页面。

创建快捷方式

这是一个最终的细节,让你只需点击一下就能启动Jupyter或JupyterLab服务器:

  • Open Windows explorer, and type %APPDATA%\Microsoft\Windows\Start Menu\Programs in the address bar and press enter. This is the folder that contains you start menu shortcuts. If you want the sage shortcut somewhere else (like your desktop), open that folder instead.

  • 打开单独的窗口并转到 %LOCALAPPDATA%\Microsoft\WindowsApps\

  • 单击鼠标右键并拖动 ubuntu.exe 图标从第二个窗口进入第一个窗口,然后选择 Create shortcuts here 当您将其放入上下文菜单时。

  • 要自定义此快捷方式,请在其上单击鼠标右键并选择属性。

    • 在常规选项卡上:

      • 把名字改成你想要的任何名字,例如“Sage9.2木星实验室”

    • 在快捷方式选项卡上:

      • 将目标更改为: ubuntu.exe run ~/sage_nb.sh

      • 将Start In更改为: %USERPROFILE%

      • 将运行更改为:最小化

      • 如果需要,请更改图标

现在点击开始按钮或键,然后输入您为其指定的名称。它应该出现在列表中,当你点击它时,它应该会加载服务器并启动浏览器。


要进一步阅读,您可以查看http://doc.sagemath.org/.上的圣数学文档中的其他文档

在现有的Jupyter笔记本或JupyterLab安装中将SageMath设置为Jupyter内核

您可能已经在全球范围内安装了Jupyter。为了更方便,可以将SageMath安装链接到Jupyter安装,将其添加到可在笔记本或JupyterLab界面中选择的可用内核列表中。

假设可以通过输入以下命令来调用SageMath sage ,您可以使用

sage -sh -c 'ls -d $SAGE_VENV/share/jupyter/kernels/sagemath'

找到SageMath内核描述的位置。

现在为内核选择一个清晰且唯一地标识它的名称。

例如,如果您从源tarball安装Sage,则可以决定在名称中包括版本号,例如 sagemath-9.6 。如果您从git存储库的克隆构建SageMath,最好选择一个标识目录的名称,也许 sagemath-devsagemath-teaching 因为版本会改变。

现在假设可以通过输入以下命令启动Jupyter笔记本 jupyter notebook ,下面的命令会将SageMath安装为一个名为 sagemath-dev

jupyter kernelspec install --user $(sage -sh -c 'ls -d $SAGE_VENV/share/jupyter/kernels/sagemath') --name sagemath-dev

这个 jupyter kernelspec 默认情况下,这种方法会导致大约2 GB的SageMath文档被复制到您的个人jupyter配置目录中。您可以通过在相关位置放置符号链接来避免这种情况。和

jupyter --paths

为您的Jupyter安装找到有效的数据目录。一个类似于……的命令

ln -s $(sage -sh -c 'ls -d $SAGE_VENV/share/jupyter/kernels/sagemath') $HOME/.local/share/jupyter/kernels/sagemath-dev

然后,可用于在您自己的位置创建指向SageMath内核描述的符号链接 jupyter 都能找到它。

如果您已从源安装了SageMath,则可以使用替代命令

ln -s $(sage -sh -c 'ls -d $SAGE_ROOT/venv/share/jupyter/kernels/sagemath') $HOME/.local/share/jupyter/kernels/sagemath-dev

创建一个符号链接,即使您稍后切换到不同的Python版本,该符号链接也将保持最新。

要在您的全局Jupyter安装中获得SageMath内核的全部功能,还需要在运行Jupyter安装的环境中安装(或链接)以下笔记本扩展包。

您可以使用以下命令检查其中一些包的存在 jupyter nbextension list

  • 对于Sage交互,您将需要该包 widgetsnbextension 安装在Python环境下的Jupyter安装。如果您的Jupyter安装来自系统包管理器,则最好安装 widgetsnbextension 以同样的方式。否则,使用以下命令进行安装 pip

    要验证交互是否正常工作,您可以评估笔记本中的以下代码:

    @interact
    def _(k=slider(vmin=-1.0, vmax= 3.0, step_size=0.1, default=0), auto_update=True):
    plot([lambda u:u^2-1, lambda u:u+k], (-2,2),
         ymin=-1, ymax=3, fill={1:[0]}, fillalpha=0.5).show()
    
  • 对于使用Three.js的3D图形,默认情况下需要互联网连接,因为SageMath的Java脚本包Three.js的定制版本是从内容交付网络检索的。

    要验证使用Three.js的在线3D图形是否正常工作,您可以评估笔记本中的以下代码:

    plot3d(lambda u,v:(u^2+v^2)/4-2,(-2,2),(-2,2)).show()
    

    但是,可以使用Three.js配置图形以供脱机使用。在这种情况下,Sage发行版中的Three.js安装需要在Jupyter安装环境中可用。这可以通过复制或符号链接来完成。Jupyter安装环境中的Three.js安装必须与来自Sage发行版的版本完全匹配。不支持使用与不同版本的Sage发行版对应的多个Jupyter内核。

    要验证使用Three.js的离线3D图形是否正常工作,您可以评估笔记本中的以下代码:

    plot3d(lambda u,v:(u^2+v^2)/4-2,(-2,2),(-2,2), online=False).show()
    
  • 对于使用jmol的3D图形,您将需要该包 jupyter-jsmol 安装在Python环境下的Jupyter安装。您可以使用以下命令进行安装 pip 。(或者,您可以复制或符号链接它。)

    要验证jmol图形是否正常工作,您可以评估笔记本中的以下代码:

    plot3d(lambda u,v:(u^2+v^2)/4-2,(-2,2),(-2,2)).show(viewer="jmol")
    

在WSL中通过Visual Studio代码(VS代码)使用Jupyter笔记本

如果您已经使用Windows Subsystem for Linux(WSL)在Windows上安装了Sage,则可以使用Visual Studio Code(VS Code)与Sage进行交互。

以下是在VS代码中在Jupyter笔记本中使用SageMath的步骤:

  • 安装并运行 VS Code 在Windows中。

  • 点击左边的“分机”图标(或按 Ctrl + Shift + X )打开分机列表。安装“Remote-WSL”和“Jupyter”扩展。

  • 在命令选项板中 (Ctrl + Shift + P ),输入“Remote-WSL:new Window”,点击 Enter

  • 在命令面板中,输入“Create:new Jupyter Notebook”,然后点击 Enter

  • 点击右边的“选择内核”(或按 Ctrl + Alt + Enter ),选择SageMath,然后点击 Enter