Son bir kaç entryden de farkedeceğiniz üzre son haftalarda python dili ile oldukça yakından ilgileniyorum. Python öğrenmesi ve yazması oldukça zevkli bir dil. "Built-in" şekilde gelen işlerimizi en basite indirgeyecek bir çok modülleri bulunuyor. Dediğim gibi python öğrenmesi ve yazması zevkli olduğu gibi size zamandan kazandıracak bir dil.
Python ile ilgili yazılan her yazıda olduğu gibi ben de python'un en sevdiğim özelliklerinden biri olan "girintili" yazma meselesine deyineyim. Python syntax'ı diğer çoğu dil gibi köşeli parantez blokları kullanan bir dil değildir. Bildiğiniz üzere php,c,c++,c# vs. bir çok dilde kod blokları (döngüler,if-else,class tanımlamaları) köşeli parantezler ile belirlenir ({}). Pythonda ise bu durum farklıdır. Kod bloklarınızı girintiler ile diğer bir ifade ile tab atlamaları ile yazarsınız.
Hemen kısa bir örnek vermek gerekirse
<?
$dur=FALSE;
$i=0;
while(!$dur){
echo $i." xx";
$i++;
if($i == 5){
$dur=TRUE;
}
}
?>
Yukarıda ki php kodunun pythondaki karşılğı şudur.
dur=False
i=0
while not dur:
print "%s xx" % (i)
i+= 1
if i == 5:
dur=True
Python hakkında kısa(?) bir girişten sonra son bir haftadır PyQt4 modülleri ile birlikte python kodları yazmak için araştırdığım ve kullandığım IDE (Integrated Development Engine) 'leri kısaca tanıtayım. Hangisini kullanacağınıza siz karar verin.
Gedit
Gedit gnome desktop ile gelen default text editördür. Default text editör deyip geçmeyelim. Gedit oldukça özelleştirilebilir ve plugin desteğine sahiptir. Pluginlerle gediti neredeyse windows ortamındaki notepad++' ya benzetmek mümkündür. Gedit ufak projelerde hata düzeltmelerinde vs. küçük işleriniz için kullanabileceğiniz bir araçtır. Bir çok dilde "syntax highlighting" desteğine sahiptir. Eklentilerle "auto complete" özelliği kullanabilirsiniz. Yalnız bu çok işlevsel olmadığı için arayışlarımı başka ide'lerle sürdürdüm.
Stanis Python Editor
Stanis Python Editor kısa adıyla SPE, wxPython Gui arabirimi ile yazılmış ufak boyutlu çok işlevsel bir editordur. Aslında Tam olarak IDE denemez. Ama SPE diğer IDE lere taş çıkartacak özelliklere sahiptir. Bunların başında kod tamamlama, syntax highlighting, debug gelmektedir. SPE başlarda ufak uygulamalarda işimi fazlasıyla görüyordu. Ta ki Gui arabirimleri olan uygulamalar yazmaya geldiğimde.(PyGTK,PyQt4). Eğer gui arabirimli uygulamalar yazmayacaksanız ve ufak boyutlu bir editor arıyorsanız SPE sizin için uygun editördür diyebilirim.
NetBeans
Aslında NetBeans'ı bu yazıda sadece python için editör sıfatıyla değerlendirmek kulaklarımın çınlamasına neden olur. Netbeans java ile yazılmış "open source" bir IDE'dir. Linux üzerinde python dışında php && mysql ile ilgilendiğimden dolayı netbeansın büyük boyutuna aldırış etmeden hemen yükledim. Eğer python için kullanmayacaksam bile php için ne kadar güzel bir IDE olduğunu zaten biliyordum. Netbeans'a python desteğini eklenti ile sağlıyoruz. Eklenti dediğime bakmayın Netbeans IDE'sinde eklentilerle bile olsa bir yazılım geliştirmek başka bir ayrıcalık. NetBeans kod tamamlama, renklendirme, debug ve özelleştirmeleri sayesinde oldukça gözümü kamaştıran bir IDE. Boyutunun büyük olmasına karşın RAM'den az kullanması da NetBeans'ı sevmemde önemli bir etken oldu. Kullandıkça oldukça hoş özelliklerini keşfettim. Mesela sizin kodlama stilinizi analiz edip size ufak hatırlatmalarda bulunabiliyor. Örneğin çoğu değişkeninizi "is_true", "yeni_x" gibi alt tire işareti kullanarak tanımladınız. Ama bir class ismini "yeniSinif" gibi büyük küçük harf kullanarak tanımladınız. Netbeans farklı tanımladığınız classın sol tarafında ufak bir icon çıkarıp "bu sizin kodlama stilinize uygun bir tanımlama değil" gibi bir açıklama ile sizi uyarabiliyor. Bilmiyorum sizce bu özellik ne kadar anlatılmaya değer ama böyle ufak birşeyi bile düşünenlerin kodladığı bir IDE ne kadar kullanışlıdır siz düşünün.
Netbeans'da herşey mükemmeldi ta ki yine bir sorunla karşılaşana kadar. Evet Netbeans da "auto complete" için PyQt4 modüllerini indexleyemiyordu. Aslında "auto complete" in PyQt4 modülleri için çalışmaması sorunu IDE'ler yüzünden değildi. PyQt4 modülleri derlenmiş modüllerdir. Bu yüzden IDE'ler "auto complete" için gerekli analizi yapamıyorlardı.
NetBeans PyQt4 ile uygulama geliştirme dışında benim için en mükemmel IDE idi. Sistemimden silmedim, hala php için kullanıyorum.
Eclipse
Eclipse tabiri caiz ise Netbeans kadar taşaklı bir IDE'dir. Yine Netbeans gibi java ile yazılmıştır. Eclipsede de kod tamamlama, syntax highlighting, debug gibi kısımlar ön plana çıkıyor. Lakin özelleştirme konusuna geldiğimizde eclipse biraz zayıf kalıyor. Sistemimde siyah ağırlıklı tema kullandığım için Eclipse'in editör alanı göze hiç hoş gelmiyordu. Renklendirme ayarlarını değiştirmek için ayarlar kısmına geldiğimde farkettim ki Eclipse hiç de kullanıcı dostu değil. Sırf editör arka planı değiştirmek için uzun bir süre internette araştırdım. En sonunda siyah ağırlıklı temalar kullanan sistemler için birisi Eclipse profil ayarları dosyasını paylaşmış. Ayarları aktardıktan sonra bir süre Eclipse kullanmaya devam ettim. Eclipse ile python uygulamaları yazmak için pydev eklentisini yüklememiz gerekiyor. Eklentiyi yükledikten sonra ilk iş PyQt4 modüllerinde kod tamamlaması olup olmadığına bakmaktı. Ön tanımlı olarak Eclipse PyQt4 modüllerini otomatik tamamlama yapamıyordu. Window->Settings>Pydev>Interpreter Python kısmından aşağıdaki seçeneklerden "forced-builtins" kısmına "PyQt4" eklememiz gerekiyor. Ekledikten sonra PyQt4 için otomatik tamamlama yapıp yapamadığına baktım. İlk başta tamamlama yapabildiği için sevinmiştim. Hatta built-in modüller için en iyi kod tamamlamalarını Eclipse yapıyordu. Ama PyQt4 için tamamlamaları sadece ilgili modülün ilgili sınıfını tam olarak yazdığınızda yapabiliyordu. Örnek vermek gerekirse
deneme=self.lineEdit
olarak bir değişken düşünün. Kod tamamlamalarını "deneme." yazdıktan sonra yapamıyordu. Ama "QtGui.QLineEdit." yaptığımızda tamamlıyabiliyordu. Tabi buda benim için hiç kullanışlı değildi. Eclipse'nin çok ram tüketmesi de cabasıydı. Bu nedenlerle Eclipse ile de yollarımı ayırıp başka IDE arayışlarını sürdürdüm.
Eric4
Eric Python IDE python ile yazılmış diğer IDE'lere göre orta boyutta (30mb) tam teşekküllü bir PyQt4 IDE'si. Tam teşekkülü olmasa da diğer IDE'lere nazaran bence PyQt4 için kullanılabilecek en ideal IDE. Kod tamamlama(PyQt4 dahil), syntax highlighting, debugging, qt4 e özel araçlar(QMessageBox Wizard, QFileDialog Wizard,Regex Wizard vs.), IDE üzerinden form dosyasını python kodlarına çevirme, düşük ram kullanımı gibi özelliklere sahip. Eric ile PyQt4 de uygulama geliştirmeden önce kod tamamlamalarını etkinleştirmemiz için ufak bir ayar çekmemiz gerekiyor. Settings->Preferences->Editor->APIs' den language: python u seçip aşağıdaki Compile APIs butonuna basın ve auto complete için indexlemeye başlasın.
Orjinal makale linki:http://www.h4ckinger.org/2010/07/python-pyqt4-icin-ide-maceralar.html
Python kodcularına son söyleyeceklerim;
- Eğer python öğrenmeye yeni başladıysanız ve gui arabirimleri olmayan uygulamar geliştirecekseniz SPE tam sizin için yazılmış bir IDE.
- Eğer daha önce php && mysql,xhtml && css için Netbeans, Eclipse gibi büyük IDE'ler kullandıysanız ve kod yazarken bu konforları isterseniz düşük donanımlı pc'ler için en uygunu Netbeans, yüksek donanımlı pc'ler için en uygunu pythondaki gelişmiş "auto complete" özelliğinden dolayı Eclipse.
- Eğer python'a zaten aşina iseniz ve PyQt4 uygulamaları geliştiriyorsanız sizin için en uygun IDE Eric Python IDE'dir.
- Ufak tefek düzeltmeleriniz de de gedit gibi ufak editörleri kullanabilirsiniz.