sys path modification

neubyr neubyr at
Mon Jul 27 23:09:27 CEST 2015

Modules are installed, but they are in a different directory than standard
modules directory. I considered an option to add a site specific directory,
but I want to make module path application specific rather than installing
it in system-wide directory. virtualenv is one option, but that means
anyone who wants to run this particular script will need to activate
virtualenv each time. I thought allowing application to find/use it's
dependencies would be easier. Are there any other options?

On Mon, Jul 27, 2015 at 12:45 PM, Ned Batchelder <ned at>

> On Monday, July 27, 2015 at 1:24:50 PM UTC-4, neubyr wrote:
> > I am trying to understand sys.path working and best practices for
> managing it within a program or script. Is it fine to modify sys.path using
> sys.path.insert(0, EXT_MODULES_DIR)? One stackoverflow answer -
> - suggests that it may break external
> 3'rd party code as by convention first item of sys.path list, path[0], is
> the directory containing the script that was used to invoke the Python
> interpreter. So what are best practices to prepend sys.path in the program
> itself? Any further elaboration would be helpful.
> The best practice is not to modify sys.path at all, and instead to install
> modules you need to import.  That way they can be imported without
> resorting
> to sys.path fiddling in the first place.
> Is there a reason you can't install the modules? Maybe we can help solve
> that.
> --Ned.
> --
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Python-list mailing list