我正在使用
PyCharm 2017.1.2 Community Edition
开发一个 python tkinter 应用程序,并使用 pyinstaller 3.2.1
打包 SW。
在应用程序运行时,有时(尚未找到根本原因事件)我会将此信息/警告消息发送到运行控制台中。
D_Lib: debug printing for files [.*] and level [100] is turned on
D_Lib: debug printing for files [.*] and level [200] is turned on
D_Lib: debug printing for files [.*] and level [300] is turned on
17004:vf_shex.cpp(84): INFO: DllCanUnloadNow returned S_OK.
这可以在
PyCharm
控制台(在调试和运行模式下)以及在 Windows cmd shell 执行 pyinstaller
exe 文件时看到。
如何删除/禁用这些线?
编辑
我已经阅读了 调用 QtGui.QFileDialog.getExistingDirectory 时的错误帖子 - 它将 ViewFinity 代理软件安装识别为更改默认对话框行为的主要嫌疑人。虽然 ViewFinity 代理确实安装在我的机器上,但我无法删除它(IT 限制)。
有没有办法在
Qt
中禁用本机对话框的使用(如另一篇关于 tkinter
的文章中所建议的)? (我找不到这样的)
我知道这是一个老问题,但该错误尚未在
Viewfinity
的本地版本中修复。这是我的旁路:
import os
import sys
def main(*args):
"""Main process"""
<Code goes here>
if __name__ == '__main__':
if '-run' not in sys.argv[1:]:
os.system('{} "{}" -run {} 2> nul'.format(sys.executable, os.path.abspath(__file__), ' '.join(sys.argv[1:])))
sys.exit()
main()
sys.exit()
它的作用是在初始运行时,
-run
不在命令行参数中,因此参数被传递给os.system()
语句(运行exec()
的另一种方式,看起来更稳定,并允许用户提供python 版本直接通过 sys.executable
传递)。
警告:
这会将 all 错误消息重定向到
nul
(即 no 错误消息打印到命令行)。仅当您使用其他打印错误消息的方法(例如使用日志记录模块)时,才应使用此旁路。
单引号必须在外面(与句子的 PEP 标准相反),因为命令行需要在文件名两边加上双引号(在 python 文件路径两边加上引号,以防文件名中有空格)。