---
title: Liii STEM Python 会话插件使用指南 - 编程绘图
description: Liii STEM Python会话插件完整教程，学习如何在Liii STEM中插入和运行Python代码，支持Conda环境。
keywords: Liii STEM, Python, 插件, 代码运行, Conda, 教程
---

> ## Documentation Index
> Fetch the complete documentation index at: https://liiistem.cn/docs/llms.txt
> Use this file to discover all available pages before exploring further.


# Python会话插件

在 Liii STEM 中，您也可以通过插入**Python会话**的方式运行想要的Python代码。

### 进入Python会话

使用该功能首先需要在您的计算机上安装 Python。之后点击模式工具栏上的 `插入会话` -> `Python` 进入可执行代码块环境。

![插入操作示意图](../images/cbinsert_8.png)

首次进入后，页面上会出现如下图所示的变化。

![代码排版效果](../images/cbinsert_9.png)

### 运行代码

将代码输入到代码块中，即可运行。

![Liii STEM cbinsert 10](../images/cbinsert_10.gif)

Liii STEM 支持导入所有 conda 的代码环境。

## Python 插件的使用说明

您可以在 `帮助` -> `插件` -> `Python` 中查看 Python 插件的详细使用指南。

![Python 插件的使用说明示意图](../images/cbinsert_11.png)

以下是对于插件使用的简单介绍。

#### 语句输入

使用 `Shift` + `Return/Enter` 键分隔语句。

![语句输入示意图](../images/cbinsert_12.png)

当您准备好让 Python 评估您输入的程序时，请点击 `Enter` 键或 `Return` 键。

![Liii STEM cbinsert 13](../images/cbinsert_13.gif)

如果想要一次性输入多行内容，请选择 `焦点` -> `输入选项` -> `多行输入` ，之后可直接点击 `Enter` 键或 `Return` 键进行换行。需要运行时，再次点击 `多行输入` 关闭该选项，点击 `Enter` 键或 `Return` 键。

![语句输入示意图](../images/cbinsert_14.png)

![语句输入示意图](../images/cbinsert_15.png)

> 出现上图的情况说明 `多行输入` 已开启。

#### 命令自动补全

您可以键入内置命令或先前定义的命令的第一个字母，然后按 `Tab` 键，直到找到您想要的补全选项。

![Liii STEM cbinsert 16](../images/cbinsert_16.gif)

#### PostScript 输出和 matplotlib 支持

使用函数 ps_out（**data**）将 PostScript 数据直接输出到 TeXmacs：

- 如果 **data** 是字符串并且有多个行，则它将作为原始 PostScript 数据进行处理。
- 如果 **data** 是一个简单的字符串，则假定它包含将被读取的 PostScript 文件的文件名（如果文件没有扩展名，则默认值将按该顺序尝试.eps 和.ps）。
- 如果 **data** 是 `matplotlib.pyplot.Figure` 的实例，并且仅当另外使用支持输出到（封装的）PostScript 的后端时，插件将调用 `data.savefig()` 将绘图保存为字符串并将其复制到 TeXmacs 文档中。
- 如果 **data** 是提供"读取"方法的文件或其他对象，则将通过调用该方法获取 PostScript 数据。

#### 帮助窗口

如果一个对象的源代码可通过 `inspect.getsource()` 获得，那么您可以键入该对象并附带一个问号 `?` 来得到一个内容为相关的 `help()` 和代码的弹出窗口。

#### 用作脚本语言

在菜单栏中点击 `插入` -> `折叠` -> `可运行` -> `Python`，将生成以下输出：

![插入操作示意图](../images/cbinsert_19.png)

![用作脚本语言示意图](../images/cbinsert_20.png)

您可以在黄色框中输入任何 Python 表达式或语句，例如：

![用作脚本语言示意图](../images/cbinsert_21.png)

在框内按 `Return` 键或 `Enter` 键将在未评估的输入和评估的输出之间切换。

![Liii STEM cbinsert 22](../images/cbinsert_22.gif)

同样地，对于更复杂的代码，您可以使用 `Shift`+`Return\Enter` 启用多行输入。

但请注意，表达式（例如 `1+2`）使用 `eval()` 进行计算，并将结果值发送到 TeXmacs，而语句（例如 `print "hi there"`，或 `a=1;a=a+2`） 被发送到 `compile()`，在此过程中，最后一个语句的返回值丢失。因此，如果您有多个表达式，则需要写入 `os.sys.stdout` 才能查看内联输出。

> 此限制将来可能会得到修复

此外，选择 `文档` -> `脚本` -> `Python` 后，您还可以使用 `\` + `!` 或 `插入` -> `链接` -> `Evaluable field`。

![插入操作示意图](../images/cbinsert_23.png)

![用作脚本语言示意图](../images/cbinsert_24.png)

同样，按下 `Return/Enter` 键可在已计算和未计算的输入之间切换。如下图所示，注意到此时的环境在 calc input 和 calc output 间切换。

![Liii STEM cbinsert 25](../images/cbinsert_25.gif)

对于具有关联的标识符，可以通过使用 `\` + `?` 或 `插入` -> `链接` -> `Field reference` 插入字段引用来在其他字段中引用这些标识符。也可以通过 `\` + `\` 或 `插入` -> `链接` -> `Input field` 使用纯输入字段。这允许动态文档在更改引用字段后自动运行脚本。有关此主题的更多信息，请参阅 TeXmacs 文档中的"插件作为脚本语言"。
