python的另一个winpty绑定(额外包)

yawinpty-extra的Python项目详细描述


又一个针对python的winpty绑定

Build statusLICENSEPyPI versionDevelopment statusDownload per monthwheelSupport python versions

安装

pip install yawinpty

从源构建

Python3.5+
安装Visual C++ 2015 Build Tools,然后使用python setup.py build生成
较旧的python
Visual C++CPython version
10.03.3, 3.4
9.02.6, 2.7, 3.0, 3.1, 3.2
<安装> ^ {EM1} $ Visual C++ 2015 Build Tools和VisualC++生成工具的匹配版本。打开“VisualC++^ {EM1} $ 2015 EEM>构建工具命令提示符”,与Python相同的拱,然后使用^ {TT1}$构建

基本示例

fromyawinptyimport*withPty()aspty:pty.spawn(SpawnConfig(SpawnConfig.flag.auto_shutdown,cmdline='python -c "print(\'HelloWorld!\')"'))withopen(pty.conout_name(),'r')asf:print(f.read())

使用yawinpty

使用yawinpty的共同目标是打开一个伪终端,然后在其中生成一个进程,并将输入发送到它的stdin,然后从它的stdout获取输出。pty包装一个伪终端并执行这些操作

classyawinpty.ptyconfig=yawinpty.config()

yawinpty.pty接受yawinpty.config的实例作为其配置

classyawinpty.config*标志

对于要初始化的标志,“配置类”通常是一组class.flag.*。示例:

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

help(yawinpty.Config.flag)获取更多支持的标志

对于yawinpty.SpawnConfig,它是类似的

help(yawinpty.Config)获取更多方法

Pty类的实例具有以下方法:

pty.conin_name

私人conout_name

私人conerr_name

获取控制台输入/输出/错误管道的名称。可以将名称传递给内置的open以打开管道

pty.代理进程id

获取代理进程的进程ID

pty.设置大小

设置终端的窗口大小

pty.spawnspawn配置

在pty中生成一个进程。spawn_config是yawinpty.SpawnConfig的实例。注意,一个pty实例只能产生一次,否则将引发yawinpty.RespawnError

返回派生进程的process id,thread id元组

classyawinpty.sprownconfig*sprownflags,appname=none,cmdline=none,cwd=none,env=none

spawnFlags
来自yawinpty.SpawnConfig.flag
的标志
appname
可执行文件的完整路径。如果指定了cmdline,则可以是None
cmdline
传递给派生进程的命令行
cwd
生成进程的工作目录
env
生成进程的环境,类似于{'VAR1': 'VAL1', 'VAR2': 'VAL2'}
的dict

请注意,init aSpawnConfig不会生成进程。只有在调用Pty.spawn()时才会生成进程。一个spawnconfig实例可以多次使用

pty.等待代理timeout=yawinpty.infinite

pty.wait\u子进程timeout=yawinpty.infinite

<>等待代理/生成进程退出。超时时引发yawinpty.timeoutexpired

pty.关闭

杀死进程不退出,关闭pTy并释放Windows资源

异常

所有与winpty相关的异常都是yawinpty.WinptyError的子类。help(yawinpty)了解更多信息

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ArrayList Java中的搜索字符串   另一个web应用程序的java访问会话   另一个应用程序中的活动和服务之间的java通信   java根据Json字符串类型将Json字符串转换为对象   eclipse如何解决java中的错误异常。lang.NoSuchMethodError:'java。字符串javax。摆动JOptionPane。showInputDialog(java.lang.String)'   线程“main”java中的安卓异常。lang.NoClassDefFoundError:org/codehaus/jackson/JsonParseException   java如何在安卓 emulator上显示Mat图像?使用NDK   Java在本地读取测试源文件,但在服务器上读取失败   java dowhile循环用于计算输入数字中的数字。故障排除代码   JAva初学者在编写获取成本的方法时遇到困难   java是shell游戏。我如何让物体移动,特别是在特定的曲线上,但顺序是随机的?   java如何区分两个同名的JButton   java为什么我在Spring Boot中需要一个接口?   java将文件路径插入数据库将删除\   使用InterfaceType初始化java对象   java如何部署一个分为Angular、Spring Boot和MySQL的项目?   java如何使用Symja解决不等式?