On Thu, 15 Dec 2016 01:28 am, Random832 wrote: > On Tue, Dec 13, 2016, at 19:10, Steve D'Aprano wrote: >> Can you show a simple demonstration of what you are doing? >> >> I'm having difficulty following this thread because I don't know >> what "script run on a tty" means. > > The question is literally about the input/script being the tty and not > redirected from any other file, which causes an interactive prompt in > CPython, but does not do so in some other languages. I don't understand > what part of this you're not getting.
What can I say? Maybe I'm just slow. Or maybe you're falling into the curse of knowledge: https://en.wikipedia.org/wiki/Curse_of_knowledge I'm not the only one having trouble understanding the nature of this problem -- Michael Torrie has also said "though a tty comes into this somehow and I'm not clear on that". What is meant by "the input/script being the tty"? And how does that relate to the subject line which refers to a pty? That's why I've asked for a simple example that demonstrates the issue. But apparently this simple example is so simple that nobody knows how to write it. I cannot replicate the OP's problem from his description alone, and I have not seen an example where the Python prompt is shown apart from when running Python interactively. So... the input is the tty. I don't know what that means, but I think I know what it isn't. I'm fairly confident it isn't when you pipe the output of one process to Python: # not this [steve@ando ~]$ echo "import sys; print sys.version" | python 2.7.2 (default, May 18 2012, 18:25:10) [GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] And likewise you said it is not when input is *redirected* from a file, so it probably isn't this: [steve@ando ~]$ cat myfile import sys; print sys.version [steve@ando ~]$ python < myfile 2.7.2 (default, May 18 2012, 18:25:10) [GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] and surely I can eliminate passing the file name as a command line argument (python myfile) as well. So what is left? Michael Torrie suggests something more or less like this, redirecting stdin to Python with a here-doc: [steve@ando ~]$ python << . > import sys > print sys.version > . 2.7.2 (default, May 18 2012, 18:25:10) [GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] (Michael's version used EOF rather than a dot.) There's a prompt, but it's not the Python prompt, it's from the shell. Since you are insisting that the Python interactive prompt is involved, then surely Michael's example isn't what you mean either. So I now have *four* ways of running code in Python that *don't* match the OP's problem (five if you include the standard REPL) and I'm not closer to understanding the OP's problem. -- Steve “Cheer up,” they said, “things could be worse.” So I cheered up, and sure enough, things got worse. -- https://mail.python.org/mailman/listinfo/python-list