Last updated on September 23, 2020 by Dan Nanni
sys.path
used by the Python interpreter. How can I change the default sys.path
in Python?
When the Python interpreter executes a program which imports a module, it examines all directory paths listed in sys.path
until it finds the module. By default, sys.path
is constructed as a concatenation of (1) the current working directory, (2) content of PYTHONPATH
environment variable, and (3) a set of default paths supplied by the installed Python interpreter.
If the module you are trying to import is not found in any of the directories defined in sys.path
, you will encounter the following error:
Import Error: No module named XXXXX
The error can occur either because the module is indeed missing on your system, or because the sys.path
does not point to the directory where the module is installed. In the latter case, you need to let the Python interpreter know where the module is found. Here is how to change sys.path
of your Python interpreter.
The first method is explicitly change sys.path
in your Python program.
You can check the content of the current sys.path
as follows.
import sys print(sys.path)
Once you find that sys.path
does not contain the necessary module directory (e.g., /custom/path/to/modules
), you can incorporate the directory by adding the following lines before the import
statement.
import sys sys.path.append('/custom/path/to/modules') . . . import <your-python-module>
Alternatively, you can add the custom module directory in PYTHONPATH
environment variable, which will augment the default module search paths used by the Python interpreter.
Add the following line to ~/.bashrc
, which will have the effect of changing sys.path
in Python permanently.
export PYTHONPATH=$PYTHONPATH:/custom/path/to/modules
The specified path will be added to sys.path
after the current working directory, but before the default interpreter-supplied paths.
If you want to change PYTHONPATH
variable temporarily, you can use the following command instead.
$ PYTHONPATH=$PYTHONPATH:/custom/path/to/modules python <your-program>
This website is made possible by minimal ads and your gracious donation via PayPal or credit card
Please note that this article is published by Xmodulo.com under a Creative Commons Attribution-ShareAlike 3.0 Unported License. If you would like to use the whole or any part of this article, you need to cite this web page at Xmodulo.com as the original source.
Xmodulo © 2021 ‒ About ‒ Write for Us ‒ Feed ‒ Powered by DigitalOcean