When you use the require()
function in
JavaScript or the import
function in Python,
the module search paths listed for the sys.path
variable are used to search for the specified module. MySQL Shell
initializes the sys.path
variable to contain
the following module search paths:
The folders specified by the module search path environment variable (
MYSQLSH_JS_MODULE_PATH
in JavaScript mode, orPYTHONPATH
in Python mode).For JavaScript, the subfolder
share/mysqlsh/modules/js
of the MySQL Shell home folder, or the subfolder/modules/js
of the folder containing the mysqlsh binary, if the home folder is not present.For Python, installation-dependent default paths, as for Python's standard import machinery.
MySQL Shell can also load the built-in modules
mysql
and mysqlx
using the
require()
or import
function, and these modules do not need to be specified using the
sys.path
variable.
For JavaScript mode, MySQL Shell loads the first module found in
the specified location that is (in order of preference) a file
with the specified name, or a file with the specified name plus
the file extension .js
, or an
init.js
file contained in a folder with the
specified name. For Python mode, Python's standard import
machinery is used to load all modules for MySQL Shell.
For JavaScript mode, MySQL Shell also provides support for
loading of local modules by the require()
function. If you specify the module name or path prefixed with
./
or ../
, in batch
mode, MySQL Shell searches for the specified module in the folder
that contains the JavaScript file or module currently being
executed. In interactive mode, given one of those prefixes,
MySQL Shell searches in the current working directory. If the
module is not found in that folder, MySQL Shell proceeds to check
the module search paths specified by the
sys.path
variable.
You can add further module search paths to the
sys.path
variable either by appending them to
the module search path environment variable for JavaScript mode or
Python mode (see
Section 13.2.1, “Module Search Path Environment Variables”), or by
appending them directly to the sys.path
variable using the MySQL Shell startup script for JavaScript mode
or Python mode (see
Section 13.2.2, “Module Search Path Variable in Startup Scripts”). You can also
modify the sys.path
variable at runtime, which
changes the behavior of the require()
or
import
function immediately.