【发布时间】:2018-05-30 18:29:32
【问题描述】:
考虑以下示例脚本:
import os
import sys
print(1)
os.execl(sys.executable, sys.executable, '-c', 'print(2)')
print(3)
结果是
1
我期待
1
2
我认为是因为替换过程没有使用相同的stdin/stdout/stderr?
在使用execl 时如何实现我的预期?
我在 Windows 上使用 Python 3.6。
【问题讨论】:
-
无法在 Windows 10 上使用 Python 3.6.2 重现。只需
2出现在 cmd 提示符之后。 -
@SergeBallesta,谢谢!我在 PyCharm 中运行脚本,由于某种原因,它不打印
2。当我从命令提示符运行它时,它可以工作。愚蠢,我知道。 (^_^;) -
我在 YouTrack 上创建了一个错误报告:youtrack.jetbrains.com/issue/PY-27648(很遗憾,我无法在赏金期间删除此问题。)