in factyou won' even need to configure the module search path to use these programs on your computer--because python always searches the home directory first (that isthe directory containing the top-level file)imports in either system' files will automatically see all the files in that system' directory for instanceif you click on system \main pyall imports will search system first similarlyif you launch system \main pysystem will be searched first instead remembermodule search path settings are only needed to import across directory boundaries howeversuppose that after you've installed these two programs on your machineyou decide that you' like to use some of the code in each of the utilities py files in system of your own it' common utility codeafter alland python code by nature "wantsto be reused in this caseyou' like to be able to say the following from code that you're writing in third directory to load one of the two filesimport utilities utilities func('spam'now the problem starts to materialize to make this work at allyou'll have to set the module search path to include the directories containing the utilities py files but which directory do you put first in the path--system or system the problem is the linear nature of the search path it is always scanned from left to rightso no matter how long you ponder this dilemmayou will always get just one utilities py--from the directory listed first (leftmoston the search path as isyou'll never be able to import it from the other directory at all you could try changing sys path within your script before each import operationbut that' both extra work and highly error prone and changing pythonpath before each python program run is too tediousand won' allow you to use both versions in single file in an event by defaultyou're stuck this is the issue that packages actually fix rather than installing programs in independent directories listed on the module search path individuallyyou can package and install them as subdirectories under common root for instanceyou might organize all the code in this example as an install hierarchy that looks like thisrootsystem __init__ py utilities py main py other py system __init__ py utilities py main py other py system __init__ py myfile py here or elsewhere need __init__ py here only if imported elsewhere your new code here why use package imports