pyinstaller 输出文件 运行 但未按预期正常工作
pyinstaller output file running but not working correctly as expected
我制作了一个非常简单的阿拉伯语语音识别程序,并尝试使用 Pyinstaller 制作它的 exe。 exe 文件已成功生成,但是当我 运行 它无法识别语音,而当我 运行 来自 IDE (Pycharm) 的程序时它可以工作fin 并按预期识别语音。
这是我的代码:
import speech_recognition
import pyttsx3
import pyperclip
import pyautogui
from PIL import ImageTk
import PIL.Image
import os
from tkinter import *
import tkinter as tk
import tkinter.font as font
def my_function():
print("Start:")
recognizer = speech_recognition.Recognizer()
text =""
if len(text)==0:
try:
with speech_recognition.Microphone() as mic:
recognizer.adjust_for_ambient_noise(mic, duration=0.2)
audio = recognizer.listen(mic)
text = recognizer.recognize_google(audio,language="ar-AR")
print("Recognized {}".format(text))
pyperclip.copy(text)
# Hotkey the paste command
pyautogui.hotkey("ctrl", "v")
text =""
except speech_recognition.UnknownValueError():
recognizer = speech_recognition.Recognizer()
text = ""
# create a tkinter window
root = Tk()
root.title('محوّل الصوت إلى كتابة')
root.iconbitmap('icon.ico')
root.geometry('300x400')
myFont = font.Font(size=30)
title_font = font.Font(size=20, weight="bold")
text = Label( text="محوّل الصوت إلى كتابة" )
text.place(relx=0.5, rely=0.1, anchor=CENTER)
text['font'] = title_font
btn_text = tk.StringVar()
btn = Button(root, text='بداية التسجيل' , bd='5',bg='green',activebackground='red',fg='white',command=my_function)
btn['font'] = myFont
btn.place(relx=0.5, rely=0.8, anchor=CENTER)
image = PIL.Image.open('background.jpg')
zoom = 0.35
pixels_x, pixels_y = tuple([int(zoom * x) for x in image.size])
img = ImageTk.PhotoImage(image.resize((pixels_x, pixels_y)))
label = Label(root, image=img)
label.image = img
label.place(relx=0.5, rely=0.4, anchor=CENTER)
root.mainloop()
我刚刚发现问题发生在我使用 -w
标志转换时。因此,为了解决这个问题,我使用控制台将我的 .py
脚本转换为 .exe
(这意味着没有 -w
标志)
所以命令是:pyinstaller -F main.py
为了隐藏控制台,我在 main.py
中添加了以下代码:
import ctypes
ctypes.windll.user32.ShowWindow( ctypes.windll.kernel32.GetConsoleWindow(), 0 )
我制作了一个非常简单的阿拉伯语语音识别程序,并尝试使用 Pyinstaller 制作它的 exe。 exe 文件已成功生成,但是当我 运行 它无法识别语音,而当我 运行 来自 IDE (Pycharm) 的程序时它可以工作fin 并按预期识别语音。 这是我的代码:
import speech_recognition
import pyttsx3
import pyperclip
import pyautogui
from PIL import ImageTk
import PIL.Image
import os
from tkinter import *
import tkinter as tk
import tkinter.font as font
def my_function():
print("Start:")
recognizer = speech_recognition.Recognizer()
text =""
if len(text)==0:
try:
with speech_recognition.Microphone() as mic:
recognizer.adjust_for_ambient_noise(mic, duration=0.2)
audio = recognizer.listen(mic)
text = recognizer.recognize_google(audio,language="ar-AR")
print("Recognized {}".format(text))
pyperclip.copy(text)
# Hotkey the paste command
pyautogui.hotkey("ctrl", "v")
text =""
except speech_recognition.UnknownValueError():
recognizer = speech_recognition.Recognizer()
text = ""
# create a tkinter window
root = Tk()
root.title('محوّل الصوت إلى كتابة')
root.iconbitmap('icon.ico')
root.geometry('300x400')
myFont = font.Font(size=30)
title_font = font.Font(size=20, weight="bold")
text = Label( text="محوّل الصوت إلى كتابة" )
text.place(relx=0.5, rely=0.1, anchor=CENTER)
text['font'] = title_font
btn_text = tk.StringVar()
btn = Button(root, text='بداية التسجيل' , bd='5',bg='green',activebackground='red',fg='white',command=my_function)
btn['font'] = myFont
btn.place(relx=0.5, rely=0.8, anchor=CENTER)
image = PIL.Image.open('background.jpg')
zoom = 0.35
pixels_x, pixels_y = tuple([int(zoom * x) for x in image.size])
img = ImageTk.PhotoImage(image.resize((pixels_x, pixels_y)))
label = Label(root, image=img)
label.image = img
label.place(relx=0.5, rely=0.4, anchor=CENTER)
root.mainloop()
我刚刚发现问题发生在我使用 -w
标志转换时。因此,为了解决这个问题,我使用控制台将我的 .py
脚本转换为 .exe
(这意味着没有 -w
标志)
所以命令是:pyinstaller -F main.py
为了隐藏控制台,我在 main.py
中添加了以下代码:
import ctypes
ctypes.windll.user32.ShowWindow( ctypes.windll.kernel32.GetConsoleWindow(), 0 )