【发布时间】:2018-03-31 04:18:08
【问题描述】:
我在 Windows 10 上通过 Anaconda 运行 Python 2.7.13,并尝试运行以下代码
import Tkinter, tkFileDialog
root = Tkinter.Tk()
root.withdraw()
file_path = tkFileDialog.askopenfilename()
(来源:https://stackoverflow.com/a/14119223/1850917)
代码本身工作正常,但是当我运行最后一个命令时出现消息Redirecting output to win32trace remote collector,正如它所说,所有输出都被重定向,所以我无法 print() 等。
有没有办法禁用这种行为?
【问题讨论】:
-
我不知道程序 odrive 是如何连接到我的 Python 安装的(我什至创建了一个新的 Anaconda 环境来测试),但它似乎以某种方式与 Python 混淆了。卸载 odrive 完全解决了这个问题。
-
对于任何好奇的人,可以使用
win32trace模块重现此问题。或者更直接的方法 - 只需添加行import win32traceutil,您将看到相同的消息(您好 odrive 开发人员!),并且您的输出和错误流将被重定向。但是,这些流是可关闭的,但不幸的是,没有自动选项 (afaik) 可以恢复为原件,只有手动选项。所以弱的解决方案是将对话功能包装到另一个,它在返回时将流恢复到原始状态。 -
另外,该模块的代码可以在here找到。很明显,某些东西在导入时会执行
SetupForPrint()。 -
感谢您的解释。我不明白安装 odrive 如何对我的 Python 安装执行此操作。任何想法?我尝试在卸载前查看我的 PATH 变量,但找不到与 odrive 相关的任何内容。
标签: python windows tkinter anaconda