当您使用require()
JavaScript 中的import
函数或 Python 中的函数时,为变量列出的模块搜索路径sys.path
用于搜索指定的模块。MySQL Shell 初始化sys.path
变量以包含以下模块搜索路径:
模块搜索路径环境变量指定的文件夹(
MYSQLSH_JS_MODULE_PATH
在 JavaScript 模式下,或PYTHONPATH
在 Python 模式下)。对于 JavaScript,
share/mysqlsh/modules/js
MySQL Shell 主文件夹的子文件夹,或者/modules/js
包含 mysqlsh二进制文件的文件夹的子文件夹,如果主文件夹不存在的话。对于 Python,依赖于安装的默认路径,对于 Python 的标准导入机制。
MySQL Shell 也可以加载内置模块
mysql
并mysqlx
使用
require()
orimport
函数,这些模块不需要使用
sys.path
变量指定。
对于 JavaScript 模式,MySQL Shell 加载在指定位置找到的第一个模块,该模块是(按优先顺序)具有指定名称的文件,或者具有指定名称加上文件扩展名的文件.js
,或者
init.js
包含在文件夹中的文件指定的名称。对于 Python 模式,Python 的标准导入机制用于加载 MySQL Shell 的所有模块。
对于JavaScript模式,从MySQL Shell 8.0.19开始,MySQL Shell也提供了通过
require()
函数加载本地模块的支持。如果指定模块名称或路径前缀为./
或
../
,则在批处理模式下,MySQL Shell 在包含当前正在执行的 JavaScript 文件或模块的文件夹中搜索指定模块。在交互模式下,给定这些前缀之一,MySQL Shell 在当前工作目录中搜索。如果在该文件夹中未找到该模块,MySQL Shell 将继续检查该sys.path
变量指定的模块搜索路径。
您可以将更多模块搜索路径添加到
sys.path
变量,方法是将它们附加到 JavaScript 模式或 Python 模式的模块搜索路径环境变量(请参阅
第 13.2.1 节,“模块搜索路径环境变量”),或者直接将它们附加到sys.path
使用 JavaScript 模式或 Python 模式的 MySQL Shell 启动脚本变量(请参阅
第 13.2.2 节,“启动脚本中的模块搜索路径变量”)。您还可以sys.path
在运行时修改变量,这会立即更改require()
或
import
函数的行为。