【问题标题】:Python script working in IDLE, but not working when run from CMD or EclipsePython 脚本在 IDLE 中工作,但在从 CMD 或 Eclipse 运行时不工作
【发布时间】:2012-03-20 07:04:12
【问题描述】:

我有一个相当奇怪的问题。

当我从 IDLE 或在 Eclipse 的调试模式下运行 python 模块(导入其他 .py 和 .pyd 文件)时,一切正常并且最终结果是正确的。但是,当我尝试从 Eclipse 或 CMD 以运行模式运行相同的模块时,会出现错误窗口并显示“python.exe 已停止工作”消息。

我设法将错误追踪到结论,当调用 .pyd 文件中的函数时,python 停止工作(导入工作正常)。从那以后,我不知道是什么导致了这些问题。 .pyd 输入参数在所有情况下都是相同的。然而,当从 cmd 运行 python 模块时,python 会崩溃。

我正在运行 64 位 Windows7、64 位 Python 2.6.6,并且所有 python 二进制文件 .pyc 都是在同一台计算机上获得的。电脑上没有安装其他python版本。

我将不胜感激任何建议,如何能够从 cmd 运行代码而不会导致 python.exe 崩溃。

【问题讨论】:

  • pyd 是一个 c_extension 模块。你确定你两次都使用同一个解释器吗?一个快速的判断方法是:import sys print sys.executable
  • 导致崩溃的函数有什么作用?此外,验证您正在运行的 Python 解释器可执行文件。从 Eclipse 转到 Window > Preferences > PyDev > Interpreter - Python 并检查解释器的位置。确保与您在命令提示符下运行的相同。我知道你说你只安装了一个,但也许其他一些程序安装了一个你不知道的不同 Python,并将它放在路径中。
  • 感谢您的回复。解释的 IDLE 使用的是 pythonw.exe,CMD 中的解释器是 python.exe。两个可执行文件都在同一个默认文件夹中。如何更改 CMD 使用的 python 解释器?
  • 在windows中有两种方法可以做到这一点——首先简单地将脚本传递给pythonw解释器——C:\python27\pythonw program.py 或你可以改变将您的程序从 *.py 扩展为 *.pyw
  • 不幸的是,这并没有解决调用 .pyd 模块时的问题。谢谢你的帮助。

标签: python eclipse windows-7 cmd python-idle


【解决方案1】:

我也遇到过类似的问题……

这个函数:

pyd_function(num.asarray(arr).astype('float64'))

当我在 eclipse 中运行它时会导致问题,但当我在 eclipse 中调试它或从 IDLE 运行它时不会出现问题;然后我将调用更改为:

a=num.asarray(arr).astype('float64')
pyd_function(a)

它开始工作了。我不明白为什么第一个电话会导致问题。

希望对你有帮助。

【讨论】:

  • 谢谢你,jankos,这解决了我的问题。当我调用 pyd_function 时,我给出了一个表达式而不是预定义的变量作为输入。我的脚本现在从 CMD 和 Eclipse 运行模式运行。有谁知道,为什么当脚本以不同方式运行时会出现这个问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-26
  • 1970-01-01
  • 1970-01-01
  • 2012-01-09
  • 2019-08-06
  • 1970-01-01
相关资源
最近更新 更多