On 24 June 2014 06:17, Jonathan Goble <[email protected]> wrote:

> I've given up trying to solve a bug that popped up in my scripts a couple
> days ago. I run a bot for Wookieepedia, over at Wikia, and run three simple
> scripts on a daily basis. They are set up to run automatically through
> Windows Task Scheduler. Since they run automatically, they run in the
> background through pythonw.exe, i.e. without a console, and therefore I
> need a means of getting the output. My solution for the past two months has
> been to redirect sys.stdout and sys.stderr to the same StringIO() instance,
> then at the end call getvalue() on that and email it to myself.
>

Could it be you haven't updated in a few years? It sounds like it's related
to a feature that I added two or three years ago, that allowed Windows
users to get full unicode out- and input. However, that does mean sys.stdin
and sys.stdout are no longer being used. We /do/ check whether the user has
redirected the output using normal shell redirection, but your method
doesn't do that.

There are a two options I can think of.
  - use normal shell redirection, e.g.
https://stackoverflow.com/questions/8662024/how-do-i-capture-the-output-of-a-script-if-it-is-being-ran-by-the-task-scheduler

  - trick the code into thinking you're doing 'regular' redirection by
adding a fileno function to your streams:
    see
https://github.com/wikimedia/pywikibot-compat/blob/master/userinterfaces/win32_unicode.py#L92

    you'd need something like x = StringIO.StringIO(); x.fileno = lambda: 10
    and the same for stdout.

(By the way, the answer is NOT "switch to core". I have tried to get core
> to run on my system and failed miserably after two hours of repeated
> attempts without even getting it to talk to the wiki. Compat worked
> perfectly on the first try. Until such time as core can be installed by a
> beginner, it is not for me.)
>

I would appreciate it if you could clarify what the issues were you ran
into.

Merlijn
_______________________________________________
Pywikipedia-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-l

Reply via email to