MySQL Shell 9.0  /  自訂 MySQL Shell  /  加入模組搜尋路徑

13.2 加入模組搜尋路徑

當您在 JavaScript 中使用 require() 函式或在 Python 中使用 import 函式時,會使用為 sys.path 變數列出的模組搜尋路徑來搜尋指定的模組。MySQL Shell 初始化 sys.path 變數以包含以下模組搜尋路徑

  • 由模組搜尋路徑環境變數指定的資料夾(JavaScript 模式中的 MYSQLSH_JS_MODULE_PATH,或 Python 模式中的 PYTHONPATH)。

  • 對於 JavaScript,MySQL Shell 主資料夾的子資料夾 share/mysqlsh/modules/js,或包含 mysqlsh 二進制檔案的資料夾的子資料夾 /modules/js (如果主資料夾不存在)。

  • 對於 Python,與 Python 標準匯入機制相同的、與安裝相關的預設路徑。

MySQL Shell 也可以使用 require()import 函式載入內建模組 mysqlmysqlx,而且這些模組不需要使用 sys.path 變數指定。

對於 JavaScript 模式,MySQL Shell 會載入指定位置中找到的第一個模組,該模組依偏好順序為:具有指定名稱的檔案、具有指定名稱加上副檔名 .js 的檔案,或包含在具有指定名稱的資料夾中的 init.js 檔案。對於 Python 模式,Python 的標準匯入機制會用於載入 MySQL Shell 的所有模組。

對於 JavaScript 模式,MySQL Shell 也支援使用 require() 函式載入本機模組。如果您指定以 ./../ 為前綴的模組名稱或路徑,在批次模式下,MySQL Shell 會在包含目前正在執行的 JavaScript 檔案或模組的資料夾中搜尋指定的模組。在互動模式下,如果給定這些前綴之一,MySQL Shell 會在目前的工作目錄中搜尋。如果該資料夾中找不到該模組,MySQL Shell 會繼續檢查 sys.path 變數指定的模組搜尋路徑。

您可以透過將進一步的模組搜尋路徑附加到 JavaScript 模式或 Python 模式的模組搜尋路徑環境變數 (請參閱第 13.2.1 節,「模組搜尋路徑環境變數」),或透過使用 JavaScript 模式或 Python 模式的 MySQL Shell 啟動腳本直接將它們附加到 sys.path 變數 (請參閱第 13.2.2 節,「啟動腳本中的模組搜尋路徑變數」),將更多模組搜尋路徑新增至 sys.path 變數。您也可以在執行階段修改 sys.path 變數,這會立即變更 require()import 函式的行為。