Sorunumun belki de çözümü çok kolay olabilir fakat beni nedenini bilmediğim şekilde başlıkta belirttiğim hatanın karşıma çıkması kanser etmiş durumda.
sıradan bir script yazıp bir arayüz yapmadan windows terminalinde açılan bir program yapmıştım herşey gayet güzel çalışıyordu ve exeye çevrilmişti. fakat şimdiki kendimi denediğim ve yine windows terminalinde çalışan, internetten arıştırarak ve benimde üstüne birşeyler kattığım Auto Clicker programını oluşturdum.
Eklediğim kütüphaneleri şöyle yazayım:
import colorama
from colorama import Fore
import time
import threading
from pynput.mouse import Button, Controller
from pynput.keyboard import Listener, KeyCode
isteğe göre de yazdığım kodları da paylaşabilirim.
Şu lanet hatayı alıyorum maalesef…
.exe’ye dönüştürürken pyinstaller kullanıyorum
oluştururken de pyinstaller --onefile clicker.py bu yolu kullanıyorum.
dediğiniz kodu çalıştırdığımda
Failed to execute script(bu hatayı vermeden önce aşağıda bahsettiğim olay gerçekleşiyordu sonradan böyle bir hatayla karşılaştım) hatası vermeden önceki yani konsol ekranının anlık açılıp kapanmasıyla program sonlanıyor
hiçbir olay gerçekleşmiyor konsol ,1 saniyeden daha kısa sürede açılıp kapanıyor
Traceback (most recent call last):
File "clicker.py", line 5, in <module>
File "PyInstaller\loader\pyimod03_importers.py", line 540, in exec_module
File "pynput\__init__.py", line 40, in <module>
File "PyInstaller\loader\pyimod03_importers.py", line 540, in exec_module
File "pynput\keyboard\__init__.py", line 31, in <module>
File "pynput\_util\__init__.py", line 76, in backend
ImportError
[4164] Failed to execute script clicker
Örnek veriyorum başka bir programımda bu hatayı yaşadım diyelim bu sefer pyinstaller --console --onefile --hidden-import "pynput.keyboard._win32" --hidden-import "pynput.mouse._win32" clicker.py yazdığınız bu komutta pynput.keyboard._win32 ve pynput.mouse._win32 yerlerine neyin gelmesi gerektiğini nerden bilmem gerekiyor
Alıntıladığım yerden anladığım kadarıyla pynput kütüphanesine gelen bir değişiklik ile “backend” import mekanizmaları dinamikleştirilmiş ve PyInstaller bunları direkt göremez hale gelmiş. --hidden-import’lar ile ihtiyaç duyulan backend’ler elle PyInstaller’a söyleniyor, çalışıyor.
Bu çok pynput-spesifik bir hata gibi duruyor; ama aynı tip bir hata ile karşılaştığınızı düşünürseniz sorunu çıkaran kütüphanenin dokümantasyonundan, işletim sistemine özgü, dinamik olarak import edilesi modülleri nerede tuttuklarını bulup onları buralara yazmak gerekir diye düşünüyorum. Ama bu exe’ye çevirme işlerinden pek anlamıyorum, o yüzden jenerik bir çözüm olmayabilir, yine duruma göre başka yollara başvurulabilir belki…