无法在Python 2.7.2中使用spawnlp
我正在玩一个叫做 entangled 的东西,它使用了 os.spawnlp。我现在用的是 Python 2.7.2。
我遇到了一个错误。
追踪记录(最近的调用在最前面): 文件 "create_network.py",第 47 行, 在 nodes.append(os.spawnlp(os.P_NOWAIT, 'python', 'python py', str(startPort))) 属性错误:'模块'对象没有属性 'spawnlp'
我该怎么解决这个问题呢?看起来没有任何迹象表明 spawnlp
被删除了,因为它从 1.6 版本开始就已经添加了。
我已经重新下载了 Windows 的 Python 安装程序,并用修复选项运行了它。我唯一能想到的就是这台电脑是 64 位的,而 Python 版本是 32 位的……我觉得这不是问题,但这是我能想到的唯一原因……
最后,建议使用 subprocess 模块,而不是 os.spawn*
1 个回答
2
在Python文档中提到:
spawnlp()、spawnlpe()、spawnvp()和spawnvpe()这些函数在Windows上是不可用的;而spawnle()和spawnve()在Windows上也不是线程安全的;我们建议你使用subprocess模块来代替。
所以,你确实需要使用另一个模块来创建子进程。