skip to navigation
skip to content

yawinpty-extra 0.1.0.dev1

yet another winpty binding for python (extra package)

yet another winpty binding for python


pip install yawinpty

runtime library dependency of pre-built wheels

python 3.5+
depends on Visual C++ Redistributable for Visual Studio 2015
older python
depends on both Visual C++ Redistributable for Visual Studio 2015 and Microsoft Visual C++ 2008 Redistributable Package

build from source

python 3.5+
install Visual C++ 2015 Build Tools, then use python build to build
older python
Visual C++ CPython version
10.0 3.3, 3.4
9.0 2.6, 2.7, 3.0, 3.1, 3.2

聽install both Visual C++ 2015 Build Tools and the matching version of Visual C++ Build Tools. open “Visual C++ 2015 Build Tools Command Prompt” with the same arch as python, then use python build to build

basic example

from yawinpty import *

with Pty() as pty:
    pty.spawn(SpawnConfig(SpawnConfig.flag.auto_shutdown, cmdline='python -c "print(\'HelloWorld!\')"'))
    with open(pty.conout_name(), 'r') as f:

using yawinpty

the common goal to use yawinpty is to open a pseudo terminal then spawn a process in it and send input to it’s stdin and get output from it’s stdout. yawinpty.Pty wrapper a pseudo-terminal and do the jobs

class yawinpty.Pty(config=yawinpty.Config())

yawinpty.Pty accept a instance of yawinpty.Config as its config

class yawinpty.Config(*flags)

for the flags to init a “config class” is commonly a set of Class.flag.*. example:

cfg = yawinpty.Config(yawinpty.Config.flag.plain_output)

help(yawinpty.Config.flag) for more supported flags

for yawinpty.SpawnConfig it’s similar

help(yawinpty.Config) for more methods

instances of the Pty class have the following methods:




get the name of console in/out/err pipe. the name could be passed to builtin open to open the pipe


get the process id of the agent process


set window size of the terminal


spawn a process in the pty. spawn_config is a instance of yawinpty.SpawnConfig. note that one Pty instance could only spawn once otherwise yawinpty.RespawnError would be raised

returns a tuple of process id, thread id of spawned process

class yawinpty.SpawnConfig(*spawnFlags, appname=None, cmdline=None, cwd=None, env=None)

the flags from yawinpty.SpawnConfig.flag
full path to executable file. can be None if cmdline is specified
command line passed to the spawned process
working directory for the spawned process
the environ for the spawned process, a dict like {'VAR1': 'VAL1', 'VAR2': 'VAL2'}

note that init a SpawnConfig does not spawn a process. a process is spawned only when calling Pty.spawn(). one SpawnConfig instance could be used multitimes

Pty.wait_agent(timeout = yawinpty.INFINITE)

Pty.wait_subprocess(timeout = yawinpty.INFINITE)

wait for agent/spawned process to exit. raise yawinpty.TimeoutExpired if out of timeout


kill processes not exited, close pty and release Windows resource


all winpty related exceptions are subclasses of yawinpty.WinptyError. help(yawinpty) for more information

File Type Py Version Uploaded on Size
yawinpty_extra-0.1.0.dev1-py2.py3-none-any.whl (md5) Python Wheel py2.py3 2017-07-16 6KB