Python kodu açılıp birkaç salisede içinde kapanıyor

UçanUçak

Hectopat
Katılım
25 Şubat 2020
Mesajlar
21
Çözümler
1
Arkadaşlar aşağıda verdiğim kodu ekranı tarayıp 'deneme.png' isimli görseli ekranda random bir şekilde çıkana kadar taraması çıkınca da görsele tıklaması ve "verilen görsele tıklandı!" çıktısını almak için kullanacaktım fakat .py uzantısı olarak çift tıkladığım zaman açılıp birkaç salise içinde 'break' komutu verilmiş gibi kapanıyor. Sebebini anlayamadım size sormak istedim. Kodda eksik veya kullanım olarak yanlış yaptığım bir şey varsa yardımcı olur musunuz? Not: Kodu çalıştırmayı kendinizde de denerseniz benim yaşadığım kapanma sorunu olup olmadığını belirtiniz.
Kod:
Python:
import time
import pyautogui

print("Başlatıldı")
while True:
    locateOnScreen = pyautogui.locateOnScreen('C:\\deneme.png')
    if locateOnScreen != None:
        x, y = pyautogui.center(locateOnScreen)
        print("Verilen görsele tıklandı!")
        pyautogui.click(x, y)
        pyautogui.moveTo(x, y+250)
    time.sleep(0.2)
 
Son düzenleyen: Moderatör:
Dostum CMD'yi açıp dosyanın olduğu dizine gel ve şu kodu çalıştır:
Kod:
python dosya_adi.py

Çalıştırdıktan sonra sorun düzelmez ise yanıtlar mısın?
 
Son düzenleyen: Moderatör:
Dostum CMD'yi açıp dosyanın olduğu dizine gel ve şu kodu çalıştır:
Kod:
python dosya_adi.py

Çalıştırdıktan sonra sorun düzelmez ise yanıtlar mısın?
Hocam aşağıya yapıştırdığım gibi bir hata aldım. Nerde hata yaptım acaba?

Kod:
Traceback (most recent call last):
  File "C:\Users\root\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyautogui\__init__.py", line 172, in wrapper
    return wrappedFunction(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\root\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyautogui\__init__.py", line 210, in locateOnScreen
    return pyscreeze.locateOnScreen(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\root\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyscreeze\__init__.py", line 405, in locateOnScreen
    retVal = locate(image, screenshotIm, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\root\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyscreeze\__init__.py", line 383, in locate
    points = tuple(locateAll(needleImage, haystackImage, **kwargs))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\root\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyscreeze\__init__.py", line 371, in _locateAll_pillow
    raise ImageNotFoundException('Could not locate the image.')
pyscreeze.ImageNotFoundException: Could not locate the image.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\root\Desktop\yeni\au.py", line 14, in <module>
    locateOnScreen = pyautogui.locateOnScreen('C:\\deneme.png')
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\root\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyautogui\__init__.py", line 174, in wrapper
    raise ImageNotFoundException  # Raise PyAutoGUI's ImageNotFoundException.
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pyautogui.ImageNotFoundException
 
Hocam aşağıya yapıştırdığım gibi bir hata aldım. Nerde hata yaptım acaba?

Kod:
Traceback (most recent call last):
  File "C:\Users\root\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyautogui\__init__.py", line 172, in wrapper
    return wrappedFunction(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\root\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyautogui\__init__.py", line 210, in locateOnScreen
    return pyscreeze.locateOnScreen(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\root\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyscreeze\__init__.py", line 405, in locateOnScreen
    retVal = locate(image, screenshotIm, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\root\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyscreeze\__init__.py", line 383, in locate
    points = tuple(locateAll(needleImage, haystackImage, **kwargs))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\root\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyscreeze\__init__.py", line 371, in _locateAll_pillow
    raise ImageNotFoundException('Could not locate the image.')
pyscreeze.ImageNotFoundException: Could not locate the image.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\root\Desktop\yeni\au.py", line 14, in <module>
    locateOnScreen = pyautogui.locateOnScreen('C:\deneme.png')
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\root\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyautogui\__init__.py", line 174, in wrapper
    raise ImageNotFoundException  # Raise PyAutoGUI's ImageNotFoundException.
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pyautogui.ImageNotFoundException
Resmin yolunu doğru yazdığına emin misin ya da .py dosyasını? İlgili konumda resim bulunamamış.

Koda baktım da sen zaten "locateOnScreen"i bir şeye eşitlemişsin. Sonra eşit olmaz ise bana bunu koştur demişsin. Ön koşul eşitlik olduğu için bakıyor. Bulamıyor. Hata veriyor.

Bahsettiğim komut:
Python:
locateOnScreen = pyautogui.locateOnScreen('C:\\deneme.png')

Ne yapmak istediğini tam algılayamadım bu arada.
 
Resmin yolunu doğru yazdığına emin misin ya da .py dosyasını? İlgili konumda resim bulunamamış.

Koda baktım da sen zaten "locateOnScreen"i bir şeye eşitlemişsin. Sonra eşit olmaz ise bana bunu koştur demişsin. Ön koşul eşitlik olduğu için bakıyor. Bulamıyor. Hata veriyor.

Bahsettiğim komut:
Python:
locateOnScreen = pyautogui.locateOnScreen('C:\deneme.png')

Ne yapmak istediğini tam algılayamadım bu arada.
Verilen png dosyasını ekranda arayıp çıkınca da tıklamasını istemiştim, düzelteme yapmam gereken bir yer var mı?
 
Verilen png dosyasını ekranda arayıp çıkınca da tıklamasını istemiştim, düzelteme yapmam gereken bir yer var mı?
Yardımcı olabilmek amacıyla soruyorum.

Ekranda aramak derken zaten ilgili resmin uzantısını yazıp misal Desktop/resim.png yazdığınızda zaten var ise bulur ve açar. Yok ise hata verir. Bu hatayı bir if komutuna eşleyerek hata alındığında şu işlemi yaptır dersin.

Örnek olarak bir PNG dosyası oluşturmak ya da istediğin her ne ise.

Spesifik olarak ekranda ara deyip, tıkla deyip ne yaptırmak istiyorsunuz ?
Amaç söylenirse kısa yolu sunulabilir.

Ayrıca kodlama özellikle executible'a çevirmediysen bir compiler ile yazmanı şiddetle öneririm. .py uzantısına tıklayınca açıp işlemi yapıp kapatır kendini. Yapamazsa da kapanır. Hata vs milisaniye içinde verir ve kapanır. Bu şekilde kodun doğruluğu/yanlışlığı, ne yaptığı anlaşılmaz.

Fakat bir compiler ile yaparsan satır satır işler kodu ve hata veren satırı hatta bazıları yeri işaretler ve bak burada hata var der. Sen de çözersin.
 
Yardımcı olabilmek amacıyla soruyorum.

Ekranda aramak derken zaten ilgili resmin uzantısını yazıp misal Desktop/resim.png yazdığınızda zaten var ise bulur ve açar. Yok ise hata verir. Bu hatayı bir if komutuna eşleyerek hata alındığında şu işlemi yaptır dersin.

Örnek olarak bir PNG dosyası oluşturmak ya da istediğin her ne ise.

Spesifik olarak ekranda ara deyip, tıkla deyip ne yaptırmak istiyorsunuz ?
Amaç söylenirse kısa yolu sunulabilir.

Ayrıca kodlama özellikle Executible'a çevirmediysen bir compiler ile yazmanı şiddetle öneririm. .py uzantısına tıklayınca açıp işlemi yapıp kapatır kendini. Yapamazsa da kapanır. Hata vs milisaniye içinde verir ve kapanır. Bu şekilde kodun doğruluğu/yanlışlığı, ne yaptığı anlaşılmaz.

Fakat bir compiler ile yaparsan satır satır işler kodu ve hata veren satırı hatta bazıları yeri işaretler ve bak burada hata var der. Sen de çözersin.

Tamamdır hocam hallettim. Try diyerek yukarıdaki kodu verdim, except fotoğrafı bulamazsa da "görüntü bulunamadı, bekleniyor..."diyerek dögüyü başa atıyor. Basit bir hataymış ama yardımcı olduğunuz için teşekkürler.
 
Tamamdır hocam hallettim. Try diyerek yukarıdaki kodu verdim, except fotoğrafı bulamazsa da "görüntü bulunamadı, bekleniyor..."diyerek dögüyü başa atıyor. Basit bir hataymış ama yardımcı olduğunuz için teşekkürler.
Estağfurullah. Yine siz çözmüş oldunuz. Fikir verebildiysem ne ala. if else olarak değil de try ile çözmüşsünüz.

İşim bu olsa dahi karışmayı çok sevmiyorum bu konulara, zira sizlerin de yaptığı gibi aynı amaca hizmet eden birbirinden alakasız bambaşka yazımlar çıkabiliyor. Bunları anlatmak da ölüm gibi oluyor. Çözülmesine sevindim.

İyi sosyaller. :)
 

Technopat Haberler

Geri
Yukarı