In article <rnospamon-3cc595.13205911082...@news.albasani.net>, RG <rnospa...@flownet.com> wrote:
> In article <i3uu74$ug...@speranza.aioe.org>, > Tim Harig <user...@ilthio.net> wrote: > > > On 2010-08-11, RG <rnospa...@flownet.com> wrote: > > > In article <i3uo7t$6m...@speranza.aioe.org>, > > > Tim Harig <user...@ilthio.net> wrote: > > > > > >> On 2010-08-11, RG <rnospa...@flownet.com> wrote: > > >> > I'm writing a system in a different language but want to use a Python > > >> > library. I know of lots of ways to do this (embed a Python > > >> > interpreter, > > >> > fire up a python server) but by far the easiest to implement is to > > >> > have > > >> > the main program spawn a Python interpreter and interact with it > > >> > through > > >> > its stdin/stdout. > > >> > > >> Or, open python using a socket. > > > > > > You mean a TCP/IP socket? Or a unix domain socket? The former has > > > security issues, and the latter seems like a lot of work. Or is there > > > an easy way to do it that I don't know about? > > > > I was referring to unix domain sockets or more specifically stream > > pipes. I guess it depends what language you are using and what libraries > > you have access to. Under C, working with stream pipes is no more trivial > > then using pipe(). You can simply create the socket descriptors using > > socketpair(). Keep one of the descriptors for your process and pass the > > other to the python child process as both stdin and stdout. > > Ah. That is in fact exactly what I am doing, and that is how I first > encountered this problem. > > rg And now I have encountered another problem: -> print sys.stdin.encoding <- None But when I run from a terminal: [...@mickey:~]$ python Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29) [GCC 4.2.1 (Apple Inc. build 5646)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.stdout.encoding 'UTF-8' I thought the value of sys.stdin.encoding was hard-coded into the Python executable at compile time, but that's obviously wrong. So how does Python get the value of sys.stdin.encoding? rg -- http://mail.python.org/mailman/listinfo/python-list