Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #28752 > unrolled thread
| Started by | Gelonida N <gelonida@gmail.com> |
|---|---|
| First post | 2012-09-09 04:03 +0200 |
| Last post | 2012-09-09 04:03 +0200 |
| Articles | 1 — 1 participant |
Back to article view | Back to comp.lang.python
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: how to run python2.6 module with absolute imports stand alone Gelonida N <gelonida@gmail.com> - 2012-09-09 04:03 +0200
| From | Gelonida N <gelonida@gmail.com> |
|---|---|
| Date | 2012-09-09 04:03 +0200 |
| Subject | Re: how to run python2.6 module with absolute imports stand alone |
| Message-ID | <mailman.400.1347156249.27098.python-list@python.org> |
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 top | Article view | comp.lang.python
csiph-web