MySQL Shell 8.4  /  自訂 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 函數的行為。