Illegal seek with os.popen

pruebauno at latinmail.com pruebauno at latinmail.com
Thu Jun 4 16:17:35 EDT 2009


On Jun 3, 3:36 pm, a... at pythoncraft.com (Aahz) wrote:
> In article <7c93031a-235e-4e13-bd37-7c9dbc6e8... at r16g2000vbn.googlegroups.com>,
>
>
>
>  <prueba... at latinmail.com> wrote:
> >Should I open a bug report for this?
>
> >Python 2.5.1 (r251:54863, Sep 19 2007, 14:58:06) [C] on aix5
> >Type "help", "copyright", "credits" or "license" for more information.
> >>>> import os
> >>>> os.popen('cat','w')
> ><open file 'cat', mode 'w' at 0x110111990>
>
> >Python 3.1rc1 (r31rc1:73054, Jun  1 2009, 10:49:24) [C] on aix5
> >Type "help", "copyright", "credits" or "license" for more information.
> >>>> os.popen('cat','w')
> >Traceback (most recent call last):
> >  File "<stdin>", line 1, in <module>
> >  File "/Python-3.1rc1/Lib/os.py", line 641, in popen
> >    return _wrap_close(io.TextIOWrapper(proc.stdin), proc)
> >IOError: [Errno 29] Illegal seek
>
> What happens in 2.6 and 3.0?
> --
> Aahz (a... at pythoncraft.com)           <*>        http://www.pythoncraft.com/
>
> "Given that C++ has pointers and typecasts, it's really hard to have a
> serious conversation about type safety with a C++ programmer and keep a
> straight face.  It's kind of like having a guy who juggles chainsaws
> wearing body armor arguing with a guy who juggles rubber chickens wearing
> a T-shirt about who's in more danger."  --Roy Smith, c.l.py, 2004.05.23

Python 2.6.2 (r262:71600, Jun  4 2009, 16:07:26) [C] on aix5
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.popen('cat','w')
<open file 'cat', mode 'w' at 0x1101ab4f8>
>>>

Python 3.0.1 (r301:69556, Jun  4 2009, 16:07:22) [C] on aix5
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.popen('cat','w')
<os._wrap_close object at 0x1103e5748>

So it seems to be something in 3.1 that causes it to fail.
BTW it is not like I use os.popen a lot. I found this problem while
trying to use help().

Python 3.1rc1 (r31rc1:73054, Jun  1 2009, 10:49:24) [C] on aix5
Type "help", "copyright", "credits" or "license" for more information.
>>> help(open)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Python-3.1rc1/Lib/site.py", line 429, in __call__
    return pydoc.help(*args, **kwds)
  File "/Python-3.1rc1/Lib/pydoc.py", line 1709, in __call__
    self.help(request)
  File "/Python-3.1rc1/Lib/pydoc.py", line 1756, in help
    else: doc(request, 'Help on %s:')
  File "/Python-3.1rc1/Lib/pydoc.py", line 1505, in doc
    pager(render_doc(thing, title, forceload))
  File "/Python-3.1rc1/Lib/pydoc.py", line 1320, in pager
    pager(text)
  File "/Python-3.1rc1/Lib/pydoc.py", line 1340, in <lambda>
    return lambda text: pipepager(text, 'less')
  File "/Python-3.1rc1/Lib/pydoc.py", line 1359, in pipepager
    pipe = os.popen(cmd, 'w')
  File "/Python-3.1rc1/Lib/os.py", line 641, in popen
    return _wrap_close(io.TextIOWrapper(proc.stdin), proc)
IOError: [Errno 29] Illegal seek
>>>



More information about the Python-list mailing list