v2.5.2
Giriş yap

Python | pyinstaller ve pydub ortak problemi

erencandamaroglu
796 defa görüntülendi

Python ile bir proje geliştirdim iş yerime ait bir ihtiyaçtan kaynaklı.
Bunu saf <strong>.exe</strong> haline getirebilmek için <strong>pyinstaller</strong> eklentisini kullanıyorum.

    pyinstaller -F proje.py

yaptığımda bir problem yaşamıyorum.
Projeyi <strong>.exe</strong> olarak açıyor yanında da bir consol açılıyor problemsiz çalışıyor. Ama ben o consolun açılmasını istemediğim için.

pyinstaller -F -w proje.py
pyinstaller -F -onefile proje.py
pyinstaller -F -noconsole proje.py

gibi <strong>pyinstaller</strong> kodlarını kullanıyorum fakat tamamında program altta bulunan <strong>pydub</strong> in bir kısmında hata vermekte.

![Hata resmi](https://cdn.r10.net/editor/23845/1438348315.png "Hata resmi")]

<strong>Pyinstaller</strong> ile yaptığım işlemlerde consolun açılmaması için hangi kodu ekleyerek <strong>.exe</strong> çıktısını alırsam alayım bunu hatayı veriyor.
Fakat consol açılır bir halde bırakırsam pyinstaller ile <strong>.exe</strong> çeviriminde sorun yaşamıyorum.

<strong>Basitce Kodun Yaptığı: </strong> E-Mail'den belirtilen kişilerden gelen ses dosyası içeren mail var mı yok mu kontrol edip. Varsa ses dosyalarını indirip mp3 e çevirip belirli db ye yükseltip farklı klasöre yüklüyor. Sorun yaşanan kısım sesin mp3 e çevrildiği kısım üsttede belirttiğim gibi pyinstaller ile .exe yapıp consol açmadığım zamanlar. Consol açtığımda ya da direk .py dosyasını çalıştıdığımda hiç bir sorun olmadan kod çalışmakta.

Cevap yaz
Cevaplar (5)
admin
1093 gün önce

--onefile i kaldirarak exe yapmayi dener misiniz.

windows kullanmadigim icin deneme imkanim olmadi. linux da calisiyor. windows kaynakli bir sorun.

ayrica kodu exe haline getirmeden kisa yol olusturup calistirabilirsiniz.

erencandamaroglu
1094 gün önce

kod bu şekilde tam olarak.

from math import exp
import os                                         # dosya okuma için içeri alınan kütüphane
import sys
import datetime                                   # tarih işlemleri için içeri alınan kütüphane
from imap_tools import MailBox, AND               # mail okumak için kütüphane
import smtplib                                    # mail göndermek için kütüphane
from email.mime.multipart import MIMEMultipart    # mail göndermek için kütüphane eki
from email.mime.text import MIMEText              # mail göndermek için kütüphane eki
from pydub import AudioSegment                    # mp3 düzenleme için oluşturulan kütüphane
import speech_recognition as sr                   # sesi yazıya döken kütüphane. Kurulumu: pip install SpeechRecognition
r = sr.Recognizer()                               # ses to text kütüphanesi fonksiyonu
from pathlib import Path                          # dosya yolu okumakla ilgili kütüphane
import json                                       # json kütüphanesi
import time                                       # zaman kütüphanesi
from tkinter import *                             # tasarim kütüphanesi
from tkinter import ttk

def sabitlerNewWindow():[email protected]

    def sabitlerDataSaveBtn():
        with open('dosyayolu/sabitler.json') as f:
            sabitlerOku = json.load(f)
        sabitlerJson['aliciMail'] = aliciMail.get()
        sabitlerJson['inenDosyalar'] = inenDosyalar.get()
        sabitlerJson['yazilacakDosya'] = yazilacakDosya.get()
        sabitlerJson['istenenDBFS'] = istenenDBFS.get()
        with open('dosyayolusabitler.json', 'w') as j:
            json.dump(sabitlerJson, j)
        LABEL = Label(sabitlerNW, text='İşlem başarılı.').grid(row=6,column=1)

    with open('dosyayolusabitler.json') as f:
        sabitlerJson = json.load(f)
    sabitlerNW = Toplevel()
    sabitlerNW.geometry('500x170')
    sabitlerNW.title('Sabitler')

    aliciMail = Label(sabitlerNW, text="Alıcı E-Mailler")
    aliciMail.grid(sticky="W", row=1,column=0)
    aliciMail = Label(sabitlerNW, text="(Virgül ile ayırınız)")
    aliciMail.grid(sticky="W", row=1,column=3)     
    aliciMail = Entry(sabitlerNW,width=35)
    aliciMail.insert(END, sabitlerJson['aliciMail'])
    aliciMail.grid(row=1,column=1)   

    inenDosyalar = Label(sabitlerNW, text="İnecek Dosya Yolu")
    inenDosyalar.grid(sticky="W", row=2,column=0)
    inenDosyalar = Entry(sabitlerNW,width=35)
    inenDosyalar.insert(END, sabitlerJson['inenDosyalar'])
    inenDosyalar.grid(row=2,column=1)

    yazilacakDosya = Label(sabitlerNW, text="Yazılacak Dosya Yolu")
    yazilacakDosya.grid(sticky="W", row=3,column=0)
    yazilacakDosya = Entry(sabitlerNW,width=35)
    yazilacakDosya.insert(END, sabitlerJson['yazilacakDosya'])
    yazilacakDosya.grid(row=3,column=1)

    istenenDBFS = Label(sabitlerNW, text="İstenilen DB")
    istenenDBFS.grid(sticky="W", row=4,column=0)
    istenenDBFS = Entry(sabitlerNW,width=35)
    istenenDBFS.insert(END, sabitlerJson['istenenDBFS'])
    istenenDBFS.grid(row=4,column=1)

    kayitButton = Button(sabitlerNW, text='Kaydet', width=30, height=2, command=sabitlerDataSaveBtn)
    kayitButton.grid(pady=10, row=5,column=1)

    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼ Ayarlar -> Email Menüsü ▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
def emailNewWindow():

    def emailDataSaveBtn():

        with open('dosyayolusabitler.json') as f:
            sabitlerOku = json.load(f)
        sabitlerJson['emailKullanici'] = emailEntry.get()
        sabitlerJson['emailSifre'] = sifreEntry.get()
        sabitlerJson['kontrolEdilecekEmail'] = kontrolEdilecekEmailEntry.get()
        sabitlerJson['islemSonuEmail'] = islemSonuEmail.get()

        with open('dosyayolusabitler.json', 'w') as j:
            json.dump(sabitlerJson, j)
        LABEL = Label(emailNW, text='İşlem başarılı.').grid(row=8,column=1)

    with open('dosyayolusabitler.json') as f:
        sabitlerJson = json.load(f)
    emailNW = Toplevel()
    emailNW.geometry('450x225')
    emailNW.title('E-mail Ayar Sayfası')

    emailLabel = Label(emailNW, text="Ulaşılacak E-Mail")
    emailLabel.grid(sticky="W", row=1,column=0)
    emailEntry = Entry(emailNW,width=50)
    emailEntry.insert(END, sabitlerJson['emailKullanici'])
    emailEntry.grid(row=1,column=1, columnspan=2)

    sifreLabel = Label(emailNW, text="Şifre")
    sifreLabel.grid(sticky="W", row=2,column=0)
    sifreEntry = Entry(emailNW,width=50)
    sifreEntry.insert(END, sabitlerJson['emailSifre'])
    sifreEntry.grid(row=2,column=1, columnspan=2)

    ttk.Separator(emailNW, orient=HORIZONTAL).grid(row=3, columnspan=4, sticky='ew', pady=10)

    kontrolEdilecekEmailLabel = Label(emailNW, text="Kontrol Edilecek Email")
    kontrolEdilecekEmailLabel.grid(sticky="W", row=4,column=0)
    kontrolEdilecekEmailEntry = Entry(emailNW,width=50)
    kontrolEdilecekEmailEntry.insert(END, sabitlerJson['kontrolEdilecekEmail'])
    kontrolEdilecekEmailEntry.grid(row=4,column=1, columnspan=2)

    ttk.Separator(emailNW, orient=HORIZONTAL).grid(row=5, columnspan=4, sticky='ew', pady=10)

    islemSonucuEmailLabel = Label(emailNW, text="İşlem Sonu Email")
    islemSonucuEmailLabel.grid(sticky="W", row=6,column=0)
    islemSonuEmail = IntVar()
    R1 = Radiobutton(emailNW, text="Göndersin", variable=islemSonuEmail, value=True)
    R1.config(indicatoron=0, bd=4, width=12)
    R1.grid(row=6,column=1,sticky="w")
    R2 = Radiobutton(emailNW, text="Göndermesin", variable=islemSonuEmail, value=False)
    R2.config(indicatoron=0, bd=4, width=12)
    R2.grid(row=6,column=2,sticky="w")
    if(sabitlerJson['islemSonuEmail']==1):
        R1.select()
    else:
        R2.select()

    kayitButton = Button(emailNW, text='Kaydet', width=25, height=2, command=emailDataSaveBtn)
    kayitButton.grid(pady=10, row=7,column=1)

    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼ Ayarlar -> Email Menüsü ▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#

    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼ İşlem Yap Btn ▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
def islemYap():
    reklamSorgu()
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼ İşlem Yap Btn ▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#

    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼ TKinter (Tasarim) ▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
ROOT = Tk()
ROOT.title('Reklam Oto Alım Programı')
ROOT.geometry("500x500")
ROOT.wm_iconbitmap("dosyayoluicon.ico")
BUTTON = Button(ROOT, text='Manuel Çek', width=30, height=2, command=islemYap, bg='green', fg='white')
BUTTON.place(anchor='n')
BUTTON.pack(pady=5)
LABEL = Label(ROOT, text='Program her dakika başı kontrol edecek.', font=(None,10), bg='red', fg='white', height=2, width=700)
LABEL.pack()
menubar = Menu(ROOT)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Sabitler", command=sabitlerNewWindow)
filemenu.add_command(label="E-Mail", command=emailNewWindow)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=ROOT.destroy)
menubar.add_cascade(label="Menü", menu=filemenu)
editmenu = Menu(menubar, tearoff=0)
ROOT.config(menu=menubar)

main_frame = Frame(ROOT)
main_frame.pack(fill=BOTH, expand=1)
my_canvas = Canvas(main_frame)
my_canvas.pack(side=LEFT, fill=BOTH, expand=1)
my_scrollbar = ttk.Scrollbar(main_frame, orient=VERTICAL, command=my_canvas.yview)
my_scrollbar.pack(side=RIGHT, fill=Y)
my_canvas.configure(yscrollcommand=my_scrollbar.set)
my_canvas.bind('<Configure>', lambda e: my_canvas.configure(scrollregion=my_canvas.bbox("all")))
second_frame = Frame(my_canvas)
my_canvas.create_window((0,0), window=second_frame, anchor="nw")

    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼ TKinter (Tasarim) ▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#

    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼ SAAT ▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
LABEL = Label(ROOT, font=("Boulder", 68, 'bold'), bg="#f2e750", fg="#363529", bd=25)
LABEL.pack()
def digital_clock(): 
   time_live = time.strftime("%H:%M:%S")
   LABEL.config(text=time_live) 
   LABEL.after(200, digital_clock)
digital_clock()
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼ SAAT ▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#

    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼ Reklam Kontrol Fonksiyonu ▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#    

def isimDegistir(data):
    data = data.split('.')
    data1 = data[0].split('-')
    if(len(data1)>1):
        return data1[1]
    else:
        return data1[0]

def reklamSorgu():

    with open('dosyayolusabitler.json') as f:
        sabitlerJson = json.load(f)

    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼ SABİT VERİLER ▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    
    emailKullanici = str(sabitlerJson['emailKullanici']) # mail 
    emailSifre = str(sabitlerJson['emailSifre']) # şifre
    aliciMail = str(sabitlerJson['aliciMail']) #mailin gönderileceği emailler
    inenDosyalar = str(sabitlerJson['inenDosyalar']) # mailden inen dosyanın tutulduğu klasör    
    yazilacakDosya = str(sabitlerJson['yazilacakDosya']) # dosya yolu belirlendi.
    istenenDBFS = int(sabitlerJson['istenenDBFS']) # ses seviyesinin getirilmesini istediğimiz ses seviyesi.
    suffixes = (".mp3, wav, .MP3, .WAV")
    mp3CiktiText = ""
    liste = [] # boş liste oluşturuldu

    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    #▼ MAİLİ OKU VE DOSYAYI İNDİR ▼#
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    #print('E-Mail e bağlanılıyor.')
    posta_kutusu = MailBox('imap.gmail.com') #bağlanacağı yer
    posta_kutusu.login(emailKullanici, emailSifre, initial_folder="INBOX") # login işlemi "initial_folder işlemi ana dizini okuması için"
    #LABEL = Label(second_frame, text=str(time.strftime('%H:%M:%S'))+' E-Mail e bağlanıldı.', anchor="w")
    #LABEL.pack(side=BOTTOM, fill='both')
    #print(time.strftime('%H:%M:%S')+' E-Mail e bağlanıldı.')
    # from_ şeklinde tanımlama yaparak sadece tek mail den gelen mailleri okutabiliyoruz.
    # date_gte şu tarihten sonraki mailleri al ya da benzeri işlemler için
    # seen True ve ya False denirse mail okunmuş ya da okunmamış filtrelemesi için.
    kriter = AND(date_gte=datetime.date(2021,12,5), from_="[email protected]", seen=False) # filtreleme kriterlerini işliyorsun
    postaKutusuVeri = posta_kutusu.fetch(kriter)
    for mailVeri in postaKutusuVeri: # mesajlari for döngüsüne sokuyorsun
        LABEL = Label(second_frame, text=time.strftime('%H:%M:%S')+' Yeni Email Tespit Edildi: ' + str(mailVeri.subject), anchor="w")
        LABEL.pack(side=BOTTOM, fill='both')
        #print(time.strftime('%H:%M:%S')+' Yeni Email Tespit Edildi: ' + str(mailVeri.subject))
        mailText = mailVeri.text
        for att in mailVeri.attachments: # dosya eki olan mailleri alıyor
            with open(inenDosyalar+'{}'.format(att.filename), 'wb') as f: 
                f.write(att.payload)
        #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
        #▼▼▼▼▼ DOSYA OKUMA İŞLEMİ ▼▼▼▼▼#
        #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
        dosyalar = os.listdir(inenDosyalar) # dosyayi okuma fonksiyonu
        for dosya in dosyalar: # for döngüsüne sokuldu
            if dosya.endswith(tuple(suffixes)): # .mp3 olanlar seçildi.
                dosya = dosya.split('.')
                liste.append(dosya) # liste adındaki boş listeye eklendi.
        #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
        #▼▼▼▼ MP3 DÜZENLEME İŞLEMİ ▼▼▼▼#
        #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
        for mp3Isim in liste: # for döngüsü açıldı
            mp3 = str(mp3Isim[0]) # for'un içindekinin biçimi belirlendi.
            inenDosyalarBul = inenDosyalar + str(mp3Isim[0])+'.'+str(mp3Isim[1])
            song = AudioSegment.from_file(inenDosyalarBul, format=mp3Isim[1]) # fonksiyon çalıştırıldı.
            orginalDBFS = int(song.dBFS) # orjinal db yi veri
            eklenecekDBFS = str(abs(orginalDBFS - istenenDBFS)) # aradaki farkı hesaplar
            song = song.apply_gain("+"+eklenecekDBFS) # aradaki farkı sese işler
            song.export(yazilacakDosya + isimDegistir(mp3)+'.mp3' , format='mp3', bitrate="320k") # mp3 ve 320k formatında dışarıya aktarır
            song.export(yazilacakDosya + mp3+'.wav' , format='wav') # okuma için wav dosyası oluşturuluyor.

            ######### ses to text #########  
            file = sr.AudioFile(yazilacakDosya + mp3+'.wav')
            with file as source:
                r.adjust_for_ambient_noise(source)
                audio = r.record(source)
                sesToTextSonuc = r.recognize_google(audio,language='tr')
            ######### ses to text ######### 

            LABEL = Label(second_frame, text=time.strftime('%H:%M:%S')+ ' ' +mp3+' adlı ses dosyasının işlenmesi bitti. ' + str(eklenecekDBFS) + ' db ekleme yapıldı.', anchor="w")
            LABEL.pack(side=BOTTOM, fill='both')
            #print(time.strftime('%H:%M:%S')+ ' ' +mp3+' adlı ses dosyasının işlenmesi bitti. ' + str(eklenecekDBFS) + ' db ekleme yapıldı.' )
            #os.remove(inenDosyalarBul) # mailden gelen ses dosyası silindi.
            os.remove(yazilacakDosya + mp3+'.wav') # mailden gelen ses dosyası silindi.

            mp3CiktiText = mp3CiktiText + "<strong>" + mp3 + "</strong>" + str(" 'ün süresi => ") + str(song.duration_seconds) + "<strong>" + " | Metnin İçeriği: </strong>"+ sesToTextSonuc +"<br><br>" 

        #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
        #▼▼▼▼▼▼▼▼ MAİL GÖNDERM ▼▼▼▼▼▼▼▼#
        #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
        try:
            if(sabitlerJson['islemSonuEmail']==1):
                mailIcerik = "--------SİSTEMDEN GELEN VERİ----------- <br>" + str(mp3CiktiText) + "<br> --------ORJİNAL MAİL İÇERİĞİ----------- <br>" + str(mailText) #mail içeriği
                mail = smtplib.SMTP("smtp.gmail.com",587) #mail bağlantısı    
                mail.ehlo()
                mail.starttls()
                mail.login(emailKullanici, emailSifre)  # gmail kullanıcı adımı ve şifremi giriyorum.

                mesaj = MIMEMultipart()
                mesaj["From"] = emailKullanici        # Gönderen kişi
                mesaj["To"] = aliciMail          # Alıcı
                mesaj["Subject"] = str(mailVeri.subject) + ' İşlem yapıldı' # Konu
                body_text = MIMEText(mailIcerik, "html")  
                mesaj.attach(body_text)
                mail.sendmail( mesaj["From"], mesaj["To"], mesaj.as_string())
                mail.close()
                LABEL = Label(second_frame, text=time.strftime('%H:%M:%S')+ ' ' + str(mesaj["Subject"]) + str(' <- adli mail gönderildi.'), anchor="w")
                LABEL.pack(side=BOTTOM, fill='both')
                #print(time.strftime('%H:%M:%S')+ ' ' + str(mesaj["Subject"]) + str(' <- adli mail gönderildi.'))
        except:
            LABEL = Label(second_frame, text=time.strftime('%H:%M:%S') + " Hata:" + sys.exc_info()[0], anchor="w")
            LABEL.pack(side=BOTTOM, fill='both')
            #print(time.strftime('%H:%M:%S') + " Hata:", sys.exc_info()[0])
    else:
        LABEL = Label(second_frame, text=time.strftime('%H:%M:%S')+' Yeni E-Mail Bulunamadı.', anchor="w")
        LABEL.pack(side=BOTTOM, fill='both')
        #print(time.strftime('%H:%M:%S')+' Yeni E-Mail Bulunamadı.')

    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼ Reklam Kontrol Fonksiyonu ▼▼▼▼▼▼▼▼#
    #▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#   

while True:
   zaman = time.gmtime()
   ROOT.update()
   if zaman.tm_sec == 00:
       reklamSorgu()

admin
1094 gün önce

kodu görmeden kimse yardımci olamaz.

erencandamaroglu
1095 gün önce

kodu aldığımda command kısmında hata veriyor o bir değişken olması gerekli galiba.
python da yeni olduğum için anlamaıdm o kısımı tam olarak bir de bu kodu kendi kodumun içerisine mi eklemem gerekli acaba?

admin
1095 gün önce

https://github.com/pyinstaller/pyinstaller/issues/3392#issuecomment-444626279 Buradaki çözümü dener misiniz?

Muhtemelen çalıştırdığınız komutun çıktıları console bulamadığı için hata veriyor olabilir. Başka bir sebep de olabilir.