Brandon Mintern wrote: > I am developing a project in Python which uses several external utilities. > For convenience, I am wrapping these accesses in a module. The problem is > that I cannot be sure where these modules are imported from, so I am > trying to figure out how to reliably execute e.g. a popen call. Example > layout: > > toplevel_dir > +-main script > +-wrapper_dir > +-some_wrapper > +-utility_dir > +-some_external_utility > > So in my main script, I might say: > > from wrapper_dir import some_wrapper > > some_wrapper.use_external_utility() > > > And then in some_wrapper, I would have code like: > > import os > > def use_external_utility(): > f = os.popen('utility_dir/some_external_utility') > lines = f.readlines() > f.close() > return lines > > > Of course, the problem with that approach is that it fails because there > is no utility_dir in the CWD, which is actually top_level_dir. So my > question is whether there is any way to specify that specified paths are > relative to the module's directory rather than the importing file's > directory. I would really like to avoid kludging together some solution > that involves passing variables or having knowledge of where my module is > being imported from. > > I am hoping that there is some simple solution to this problem that I > simply haven't found in my searches so far. If so, I will humbly accept > any ridicule that comes along with said simple solution :-). > > Thanks in advance, > Brandon
Normally this would be: f = os.popen('./wrapper_dir/utility_dir/some_external_utility') -Larry -- http://mail.python.org/mailman/listinfo/python-list