Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #28752
| From | Gelonida N <gelonida@gmail.com> |
|---|---|
| Subject | Re: how to run python2.6 module with absolute imports stand alone |
| Date | 2012-09-09 04:03 +0200 |
| References | <k2dr1c$5i5$1@ger.gmane.org> <k2e2fs$rng$1@ger.gmane.org> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.400.1347156249.27098.python-list@python.org> (permalink) |
On 09/08/2012 02:13 AM, Mark Lawrence wrote: > On 07/09/2012 23:04, Gelonida N wrote: >> Hi, >> >> many of my modules contain following section at the end >> >> >> def main(): >> do_something() >> if __name__ == '__main__': >> main() >> >> This allows me to run some basic example code >> or some small test in a stand alone mode. >> >> >> My new modules contain following line at the beginning: >> >> from __future__ import absolute_import >> >> >> I like this: >> - It can reduce import name conflicts >> - and second it allows 'relative' imports like >> from .othermodule import funcname >> from ..mod_one_level_higher import fdfsd >> >> >> However If I try to run such a script from the command line it will now >> complain with >> >> ValueError: Attempted relative import in non-package >> >> Any tricks to work around this ??? >> >> The only idea, that I have is to have a script, that would take my >> modulename or path name as parameter, and try to import it and then call >> the main function of the imported module. >> >> >> Not very elegant, but probably functional. >> >> Thanks in advance for any other suggestions / ideas. >> > > I hope this helps > http://stackoverflow.com/questions/3616952/how-to-properly-use-relative-or-absolute-imports-in-python-modules It seems the safest bet seems to be to not use relative imports. What I did in the end however is write a wrapper script, that takes another script as parameter, converts it's path name to a module name, imports it, adapts sys.path and calls main of the imported module. Perhaps a little overkill, but most convenient, as the script can even adapt sys.path prior to importing other files if required. > >
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Re: how to run python2.6 module with absolute imports stand alone Gelonida N <gelonida@gmail.com> - 2012-09-09 04:03 +0200
csiph-web