Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python importing modules differently when run interactively/non-interactively

Tags:

One of my Python scripts runs in interactive mode but fails when run from the command line. The difference is that when run from the command line, it imports modules from a bad .egg file, and when run interactively it uses my fixed (unzipped) version in the current directory.

My question is two-fold: a) why does Python load modules differently when run from these locations, and b) what are my options to work around it?

like image 310
Dan Avatar asked Nov 22 '09 02:11

Dan


1 Answers

I don't understand what do you mean by running script in interactive mode, so I can't say exactly. But the first place to look for modules (sys.path[0]) in interactive mode is current directory (even calling os.chdir() will affect imports), while for script it's directory where the script is located (derived from sys.argv[0]). Note that they are effectively the same when script is run from directory where it's located, but could be different in other cases. Hope this helps.

like image 75
Denis Otkidach Avatar answered Oct 11 '22 22:10

Denis Otkidach