Failed to execute script "exe'ye çevirmek istediğimiz dosya": Pynput ImportError

Merhaba,

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.
Adsız

Çözümlerinizi de bekliyorum.
Teşekkür ediyorum

merhaba

pyinstaller --console --onefile clicker.py

sonrası oluşan .exe’yi çalıştırmaya çalıştığınızda çıkan konsolda bir şeyler yazıyor mu?

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

Exe’yi konsoldan çalıştırabilir misiniz direkt?

dediğiniz şeyi anlamadım sanırım nasıl yapabilirim

Yani mesela exe’nin ismi clicker.exe ise bulunduğu konuma gidebilirsiniz, orada cmd veya powershell’i açıp içerisine .\clicker.exe yazabilirsiniz

Evet, dediğinizi yaptım ve konsolda:

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

belirtilen hata ile karşılaştım

pyinstaller --console --onefile --hidden-import "pynput.keyboard._win32" --hidden-import "pynput.mouse._win32" clicker.py

komutunu deneyebilir misiniz? alıntı

2 Beğeni

Hocam elinize emeğinize sağlık zaman ayırdığınız için
Nasıl olurda bu komut diğerlerinden farkını gösteriyor yani nasıl çözdü bu komut

Ö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…

1 Beğeni

Tekrardan yardım ettiğiniz için teşekkür ediyorum hayırlı akşamlar hocam

1 Beğeni