Mario

WFN Üye
Konular
622
Mesajlar
622
Çözüm
0
Ticaret Puanı
0
Üyelik
24 Gün
Konum
Zonguldak
Web Sitesi
Var
Alanı
Google Optimiz.
1/1
Konu sahibi
İlk deneme için Komut İstemi’nde pythonw.exe ile çalıştırabilirsiniz; bu yöntem Python scriptini konsol penceresi açmadan başlatır. Scriptin Windows açıldığında veya belirli aralıklarla kendiliğinden çalışmasını istiyorsanız daha doğru çözüm Görev Zamanlayıcı’ya bir görev eklemektir. Ancak konsol penceresinin görünmemesi, scriptin başarıyla çalıştığını kanıtlamaz; bu nedenle dosyaya günlük kaydı yazdırmanız gerekir.

Konsol penceresi açmadan çalıştırma​


Önce scriptinizi normal Python yorumlayıcısıyla çalıştırıp hata vermediğini kontrol edin. Örneğin dosyanız C:\Scripts\backup.py konumundaysa Komut İstemi’nde şu komutla deneyin:

Kod:
python "C:\Scripts\backup.py"

Komut çalışıyor ve hata vermiyorsa aynı scripti pythonw.exe ile başlatabilirsiniz:

Kod:
pythonw "C:\Scripts\backup.py"

pythonw.exe Windows’ta konsol penceresi oluşturmayan Python çalıştırıcısıdır. Python komutu PATH’e eklenmemişse çalıştırıcının tam yolunu kullanın. Örnek yol kurulumunuza göre değişebilir:

Kod:
"C:\Users\Kullanici\AppData\Local\Programs\Python\Python313\pythonw.exe" "C:\Scripts\backup.py"

Komut satırı hemen geri döner ve pencere görünmez. Bu yalnızca işlemin arka planda başlatılmaya çalışıldığını gösterir; scriptin tamamlandığını göstermez. Hataları görebilmek için scriptin kritik işlemlerini günlük dosyasına yazdırın:

Python:
from pathlib import Path
import logging

log_dosyasi = Path(__file__).with_name("backup.log")
logging.basicConfig(
    filename=log_dosyasi,
    level=logging.INFO,
    format="%(asctime)s %(levelname)s %(message)s",
)

try:
    logging.info("Script başladı")
    # Buraya yapılacak işi yazın
    logging.info("Script tamamlandı")
except Exception:
    logging.exception("Script hata verdi")

Bu örnekte backup.log oluşuyorsa script en azından çalışmaya başlamıştır. Dosyada Script tamamlandı satırı yoksa işlem yarıda kalmış veya hata vermiştir. Hata kaydı varsa çözümü logdaki son hata türüne göre arayın; yalnızca pencerenin görünmemesine bakarak işlemin başarılı olduğunu varsaymayın.

Windows açılışında veya oturum açınca otomatik başlatma​


Scripti her bilgisayar açılışında, kullanıcı oturum açtığında ya da belirli bir saatte çalıştırmak için Görev Zamanlayıcı’yı kullanın. Bu yöntem özellikle sunucu scriptleri ve otomasyonlar için uygundur; Windows görevi belirlediğiniz tetikleyici gerçekleştiğinde Python komutunu çalıştırır.

Görev oluştururken şu bilgileri hazır bulundurun:
  • Python çalıştırıcısının tam yolu: örneğin C:\Users\Kullanici\AppData\Local\Programs\Python\Python313\pythonw.exe
  • Scriptin tam yolu: örneğin C:\Scripts\backup.py
  • Scriptin kullandığı dosyaların bulunduğu çalışma klasörü: örneğin C:\Scripts
  • Tetikleyici: oturum açma, bilgisayar açılışı, belirli saat veya tekrarlayan zamanlama
Görev Zamanlayıcı’da yeni görev oluştururken eylem olarak Python çalıştırıcısını seçin. Program alanına pythonw.exe dosyasının tam yolunu, bağımsız değişkenler alanına ise scriptin tam yolunu yazın:

Kod:
"C:\Scripts\backup.py"

Varsa Başlangıç konumu veya çalışma klasörü alanına C:\Scripts yazın. Bu ayrıntı önemlidir; script içinde rapor.csv gibi göreli bir yol kullanıyorsanız dosyanın hangi klasörde aranacağını çalışma konumu belirler. Daha güvenli yaklaşım, Python kodunda dosya yollarını scriptin bulunduğu klasöre göre oluşturmaktır.

Görevi kaydettikten sonra listeden görevi seçip el ile çalıştırın. Görev çalışıyor görünüyor ama log dosyası oluşmuyorsa önce Python yolu, script yolu ve görev hesabının ilgili klasöre erişim iznini kontrol edin. Görev yalnızca kullanıcı oturum açtığında çalışacak şekilde ayarlanmışsa, oturum açılmadan yapılan testte sonuç beklemeyin. Sistem açılışında çalışan görev için scriptin masaüstü, ağ sürücüsü veya kullanıcıya özel ortam değişkenlerine bağımlı olmaması gerekir.

Hangi yöntemi seçmelisiniz?​


Yalnızca pencereyi gizlemek istiyorsanız pythonw.exe yeterlidir. Otomatik başlatma, zamanlama, yeniden çalıştırma veya çalıştırma hesabı gibi kurallar gerekiyorsa Görev Zamanlayıcı’yı tercih edin.
İhtiyaçUygun yöntemDikkat edilmesi gereken
Elle arka planda başlatmapythonw.exe script.pyHata penceresi görünmez; log tutulmalıdır.
Kullanıcı oturum açınca çalıştırmaGörev Zamanlayıcı, oturum açma tetikleyicisiGörev ilgili kullanıcı hesabının izinleriyle çalışır.
Bilgisayar açılınca çalıştırmaGörev Zamanlayıcı, sistem başlangıcı tetikleyicisiKullanıcı klasörleri ve ağ bağlantıları hazır olmayabilir.
Belirli aralıklarla çalıştırmaGörev Zamanlayıcı, zamanlanmış tetikleyiciScript aynı anda ikinci kez başlamayacak şekilde görev ayarını kontrol edin.
Görev Zamanlayıcı’nın komut satırıyla kullanılabilen schtasks aracı da vardır. Örneğin varsayımsal olarak scripti kullanıcı oturum açtığında başlatan bir görev şu yapıda oluşturulabilir:

Kod:
schtasks /create /tn "Python Backup" /tr "\"C:\Users\Kullanici\AppData\Local\Programs\Python\Python313\pythonw.exe\" \"C:\Scripts\backup.py\"" /sc onlogon /f

Bu komutta /tn görev adını, /tr çalıştırılacak komutu, /sc onlogon ise oturum açma tetikleyicisini belirtir. Kendi bilgisayarınızdaki gerçek Python ve script yollarını yazın. Komut başarılı biçimde görev oluşturduğunu bildirirse bu yalnızca zamanlamanın kaydedildiğini gösterir; scriptin gerçekten tamamlandığını log dosyasından kontrol etmeniz gerekir.

Scriptiniz kullanıcı arayüzü açıyor, masaüstüyle etkileşiyor veya ağ sürücüsü kullanıyorsa görev hesabı ve “kullanıcı oturum açmış olsun” koşulu sonucu değiştirebilir. Buna karşılık arka planda çalışan bir sunucu veya otomasyon scripti için tam dosya yolları, uygun çalışma klasörü ve log kaydı kullanmak en güvenilir başlangıç düzenidir.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Foruma git ?

Bu konuyu görüntüleyen kullanıcılar

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic