Bir python komut dosyasının etkileşimli olarak çalıştırılıp çalıştırılmadığını otomatik olarak algılamanın bir yolu var mı? Alternatif olarak, ipython'un normal c python çalıştırılabilirliğine karşı kullanılmakta olup olmadığını tespit edebilir mi?Bir python komut dosyasının etkileşimli olarak ipython'da çalıştırılmasının algılanması
Arka plan: Python komut dosyalarının genellikle içinde çıkış() çağrısı vardır. Zaman zaman, genellikle ipython'da hata ayıklama ve profil oluşturma için komut dosyalarını etkileşimli olarak çalıştırıyorum. Etkileşimli olarak çalışırken, çıkmak için çağrıları bastırmak istiyorum.
Açıklama:
varsayalım ben var gibi görünen bir senaryo, myscript.py, Bazen
#!/usr/bin/python
...do useful stuff...
exit(exit_status)
, ben zaten başlamış bir ipython oturum içinde komut dosyasını çalıştırmak istiyorum gibi söyleyerek bir şey: komut sonunda
In [nnn]: %run -p -D myscript.pstats myscript.py
, çıkış() çağrısı bunun bir süre asmak için ipython neden olacaktır gerçekten çıkmak istiyorsam beni serseri. Bu, hata ayıklama yaparken küçük bir rahatsızlıktır (benim için çok küçük bir önem taşır), ancak profil sonuçlarını dağıtabilir: çıkış istemi, profil sonuçlarına dahil edilir (öğle yemeğine gitmeden önce bir profil oturumu başlatırsam analizi daha zor hale getirir) . interaktif çağrıldığında sadece o ortam değişkeni olabilir bu yüzden
#!/usr/bin/python
...do useful stuff...
if is_python_running_interactively():
print "The exit_status was %d" % (exit_status,)
else:
exit(exit_status)
"python" ile aldığınız standart etkileşimli kabuk hakkında ne dersiniz? – n611x007