I noticed, when I launch python
REPL and do:
import sys
print(sys.path)
The first element of the list is an empty string. This
the first item of this list, path[0]
, is the directory containing the script that was used to invoke the Python interpreter.
If the script directory is not available (e.g. if the interpreter is invoked interactively or if the script is read from standard input), path[0] is the empty string, which directs Python to search modules in the current directory first.
As per documentation here
From the docs
If the script directory is not available (e.g. if the interpreter is invoked interactively or if the script is read from standard input), path[0] is the empty string
So, when you're using python through the command line, there is no script being used so the first element is represented as an empty string.
sys.path[0]
is an entry created by the Python executable to refer to the directory of the script being run. If no script is being run, e.g. the REPL has been invoked directly, an empty entry representing the current directory is added.