我一直在尝试不同的解决方案,从所有的互联网和仍然没有找到一个解决方案,为我工作呢。
这是我使用的pyinstaller命令
pyinstaller --hidden-import "numpy.core._dtype_ctypes" --hidden-import "canmatrix.formats" --hidden-import "canmatrix.formats.dbc" --hidden-import "canmatrix.formats.arxml" --hidden-import "asammdf.blocks.cutils" --additional-hooks-dir=hooks --onefile --noconsole myscript.py
我的python脚本也使用一些cmd命令但是重定向输出不起作用
my code --
import eel
from pathlib import Path
from asammdf import MDF
from pathlib import Path
import glob
import sys
import os
from datetime import timedelta
import subprocess
eel.init("D:\SharedFolder\suprava\VS code\Python")
@eel.expose
def pythoncode():
#python code ----
#few cmd commands but redirecting the std
output doesnt work
eel.start("main.html")
.exe
似乎在没有--noconsole
选项的情况下工作得很好,但我不希望在终端中显示代码的标准输出。
我试着编辑service.py
文件,就像互联网上其他解决方案建议的那样,但似乎效果不佳。
是否有办法在创建.exe文件后隐藏终端?
1条答案
按热度按时间62lalag41#
当您使用
--noconsole
模式时,它会自动将您的sys.stdout
和sys.stderr
设置为None。所以如果你的代码或库使用日志或写消息到这些流中的任何一个,它将导致一个错误。通常类似于NoneType object has no attribute write
。如果这是您收到的错误,那么您需要做的就是将sys.stdout
和sys.stderr
重定向到一个新的流,如打开的文件或io缓冲区。只要让脚本尽可能早地运行该代码即可。