Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #75863

Re: AttributeError: 'module' object has no attribute 'fork'

Newsgroups comp.lang.python
Date 2014-08-07 22:19 -0700
References <7bd83ac7-17e6-49c2-b5c7-3236c900d005@googlegroups.com> <mailman.12720.1407394838.18130.python-list@python.org> <roy-496ACC.07490507082014@news.panix.com> <53e3afd9$0$29970$c3e8da3$5496439d@news.astraweb.com>
Message-ID <f865db66-8cb8-4796-a8f0-bedfb2ef5079@googlegroups.com> (permalink)
Subject Re: AttributeError: 'module' object has no attribute 'fork'
From Rustom Mody <rustompmody@gmail.com>

Show all headers | View raw


On Thursday, August 7, 2014 10:26:56 PM UTC+5:30, Steven D'Aprano wrote:
> Roy Smith wrote:

> >  Peter Otten  wrote:
> >> os.fork()
> >> Fork a child process.
> >> ...
> >> Availability: Unix.
> >> """
> >> You are using the wrong operating system ;)
> > To be honest, this could be considered a buglet in the os module.  It
> > really should raise:
> > NotImplementedError("fork() is only available on unix")
> > or perhaps even, as Peter suggests:
> > NotImplementedError("You are using the wrong operating system")
> > either of those would be better than AttributeError.

> I disagree. How would you tell if fork is implemented? With the current
> behaviour, telling whether fork is implemented or not is simple:

> is_implemented = hasattr(os, "fork")

> With your suggestion:

> try:
>     pid = os.fork()
> except NotImplementedError:
>     is_implemented = False
> else:
>     if pid == 0:
>         # In the child process.
>         os._exit(0)  # Unconditionally exit, right now, no excuses.
>     is_implemented = True

> which is not obvious, simple or cheap.

Surely I am missing something but why not check os.fork before 
checking os.fork() ?

Something along these lines

>>> try:
...   os.fork
... except AttributeError:
...   ii = False
... else:
...   ii = True


Of course more appropriate would be something along the lines:
catch AttributeError and re-raise NotImplementedError

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

AttributeError: 'module' object has no attribute 'fork' Satish ML <satishmlwizpro@gmail.com> - 2014-08-06 23:44 -0700
  Re: AttributeError: 'module' object has no attribute 'fork' Peter Otten <__peter__@web.de> - 2014-08-07 09:00 +0200
    Re: AttributeError: 'module' object has no attribute 'fork' Roy Smith <roy@panix.com> - 2014-08-07 07:49 -0400
      Re: AttributeError: 'module' object has no attribute 'fork' Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-08-08 02:56 +1000
        Re: AttributeError: 'module' object has no attribute 'fork' Rustom Mody <rustompmody@gmail.com> - 2014-08-07 22:19 -0700
          Re: AttributeError: 'module' object has no attribute 'fork' Rustom Mody <rustompmody@gmail.com> - 2014-08-07 22:35 -0700
          Re: AttributeError: 'module' object has no attribute 'fork' Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-08-08 15:48 +1000
            Re: AttributeError: 'module' object has no attribute 'fork' Rustom Mody <rustompmody@gmail.com> - 2014-08-08 00:17 -0700
              Re: AttributeError: 'module' object has no attribute 'fork' Chris Angelico <rosuav@gmail.com> - 2014-08-08 17:32 +1000

csiph-web