- Konu sahibi
- #1
İlk deneme için Komut İstemi’nde
Önce scriptinizi normal Python yorumlayıcısıyla çalıştırıp hata vermediğini kontrol edin. Örneğin dosyanız
Komut çalışıyor ve hata vermiyorsa aynı scripti
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:
Bu örnekte
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:
Varsa
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.
Yalnızca pencereyi gizlemek istiyorsanız
Görev Zamanlayıcı’nın komut satırıyla kullanılabilen
Bu komutta
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.
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
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öntem | Dikkat edilmesi gereken |
|---|---|---|
| Elle arka planda başlatma | pythonw.exe script.py | Hata penceresi görünmez; log tutulmalıdır. |
| Kullanıcı oturum açınca çalıştırma | Görev Zamanlayıcı, oturum açma tetikleyicisi | Görev ilgili kullanıcı hesabının izinleriyle çalışır. |
| Bilgisayar açılınca çalıştırma | Görev Zamanlayıcı, sistem başlangıcı tetikleyicisi | Kullanıcı klasörleri ve ağ bağlantıları hazır olmayabilir. |
| Belirli aralıklarla çalıştırma | Görev Zamanlayıcı, zamanlanmış tetikleyici | Script aynı anda ikinci kez başlamayacak şekilde görev ayarını kontrol edin. |
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.