【发布时间】:2012-05-20 10:34:51
【问题描述】:
如果我使用 Python 的交互模式一次键入一个命令,我的 some Python code 会按预期工作。如果保存为myscript.py 并以'C:\Python27\python.exe myscript.py' 运行,相同的代码会崩溃。
如果相同的代码在交互模式下运行,将 Python 代码作为脚本运行会以何种方式导致其崩溃?
This question 询问判断 python 是否处于交互模式的方法。然而,提问者只想要一个单一的、可靠的交互模式指纹。我想要一个交互模式不同方式的列表,特别注意这可能导致的问题。
例如:
-
sys.path可能不同 -
os.getcwd()可能不同 -
os.environ可能不同 - this question的所有答案
- This warning 多处理模块文档开头
Python 的交互模式和脚本模式还有什么不同?
【问题讨论】:
-
我不认为 sys 或 os 的问题会有所不同,因为这两个版本(交互与脚本)都在相同的上下文中运行。换句话说,从任何给定的目录中,如果你执行“python script.py”或“python -i”,cwd、路径和环境将是相同的。
-
当您说“在迭代模式下”时,您是在谈论运行“python -i”,还是在谈论通过 IDLE 运行?这两者之间肯定存在一些差异。
-
好问题,布莱恩·奥克利。在这个问题中,我在考虑
python myscript.py与python -i并手动输入相同的命令。如果您对自己的断言有信心(cwd、路径和环境将相同),我将编辑我的问题以删除我的误导性陈述。 -
Karl Knechtel,我在想“引发异常”或类似的东西。这是您想知道的定义类型吗?我想我并没有想到段错误或崩溃 python 或 BSOD。
-
有一些方法可以让 CPython 崩溃,如果你足够邪恶,那么实现就无能为力了。但我的意思是:与其尝试编译差异列表,不如向我们展示崩溃的代码以及它是如何崩溃的?
标签: python interactive interactive-mode