X
    Kategoriler: Python

Python Geliştirmek ve Çalıştırmak

Bu yazımda Python programlama diline başlayan geliştiriciler için Python geliştirmek ve çalıştırmak için izlenecek yolları yazdım. Bir bilgisayarda editör aracılığıyla hemen Python yazmaya başlayabilirsiniz ama yapacağınız işin işlemci üzerinde yükü arttıkça alternatif yollar aramaya başlayacaksınız. Bu yazımde bu alternatif yollardan bahsettim.

Python, pypy, IPython

Python kodunu çalıştırmak veya diğer dillere çevirmek için çeşitli uygulamalar vardır. Geliştiriciler CPython, IPython, IPython notebook, PyPy, Pyston, IronPython, Jython, Pyjamas, Cython, Nuitka, Micro Python, vb. uygulamalarla çalışır. CPython standart referans uygulamasıdır ve genellikle çalışılan derleyicidir. İşletim sisteminin komut satırında python yazıldığında çalışmaya başlanabilir

PyPy derleyicisi genellikle standart CPython’dan daha hızlı çalışır. Ne yazık ki PyPy, veri madenciliği, numpy ve scipy gibi bazı merkezi Python paketlerini desteklemiyor ancak konuyla ilgili bazı çalışmalar 2012’den beri devam ediyor.

Bazı bireyler ve şirketler IDE (Integrated Development Environment) ile birlikte Python’un ikili dağıtımlarını ve birçok Python paketini bir araya getirmiştir. Bu sistemler özellikle birçok Windows kullanıcısının C-tabanlı Python paketlerini derlemek için bir derleyicisi olmayan kullanıcılar için uygun olabilir. Python (x, y) Spyder IDE ile Windows tabanlı bilimsel odaklı bir Python dağıtımıdır.

WinPython’da benzer bir sistemdir. WinPython’da bulunan birçok ilgili veri madenciliği paketinin (Örneğin pandas, IPython, numexpr) yüklenmesi, kaldırılması ve yükseltilmesi için bir araç bulacaksınız. Windows, Linux ve Mac platformları için mevcut olan geliştirme araçları bu tür veri madenciliği ortamlarını, örneğin numpy, scipy, pandas, nltk, networkx gibi kütüphanelerden beklediğiniz şeyleri içerir.

Enthought Canopy ücretsiz ve ticari lisans altında bulunan bilimsel, analitik bilgi işlem dağıtım ve analiz ortamı için bir Python yazılımıdır. Sadece akademik kullanım için ücretsizdir. Temel Anaconda aracı tamamen ücretsizdir, Continuum Analytics ise yalnızca akademik kullanım için ücretsiz olan bazı “eklentiler” sağlar. Python ve Python paketlerinin bir diğer önemli ticari sınıf dağıtımı ise ActivePython’dur. Veri madenciliği çalışmalarına daha az bağlıdır.

Jupyter Notebook

Jupyter Notebook (daha önce IPython Notebook olarak adlandırılmıştı) Mathematica yazılımına benzeyen editöre sahiptir ve tarayıcı tabanlı olarak çalışır. IPython’un daha yeni sürümlerini yüklediğinde Python dışındaki komut satırından jupyter notebook komutu ile başlatılabilir. Tarayıcı bu adrese yönlendirildiğinde IPython Notebook sorgusu ile http://127.0.0.1:8888 varsayılan adresi ile yerel bilgisayarda çalışan bir web sunucusu elde edilir. Doğrudan tarayıcıda Jupyter Notebook’un ‘hücreler’ olarak adlandırdığı satırlara kodları girerek kullanabilirsiniz. Hücreler, örneğin shift + enter(return) klavye kısa yolu vasıtasıyla kolayca yürütülebilir. Girdiler, metinler ve çıktılarla beraber tüm oturum verileri dağıtıma hazır “.ipynb” uzantısı ile özel bir JSON dosya biçiminde saklanır. Ayrıca oturumun bir parçasını normal Python uzantısı olan .py dosyası olarak kaynak kodla da dışa aktarabilirsiniz.

Veri madenciliği için harika olsa da Jupyter Notebook yeniden kullanılabilen çoklu modüller ve test çerçeveleriyle çalıştığınız geleneksel yazılım geliştirme için belki de daha az uygun bir yazılımdır.

Python 2 ve Python 3

Python programlama dili, Python 2 ve dilin yeni sürümü olan Python 3 arasında bir geçiş aşamasındadır. Python 2’nin 2020’ye kadar hayatta kalması planlanıyor. Ancak 2014’te yapılan bir ankette geliştiriciler hala 2.x sürümlerinin kodlarını daha çok kullanıyorlar. Sık kullanılan değişken tipleri, sınıflar, range, xrange, long, open ve bölme operatörü gibi işlevlerde değişiklikler meydana geldiğinden bir sürüm için yazılan Python kodu diğer sürüm için çalışmakta sorun çıkarabilir.

Popüler modüllerin Python 3’ü desteklediğine dair genel bir bakış için http://python3wos.appspot.com/ adresine bakın. Örnek olarak 3 boyutlu bilimsel görselleştirme iyi bir Python 3 desteğine sahip değildir.

Bazı Linux dağıtımları hala Python 2 sürümüyle varsayılan olarak gelirken Python 3’ün PEP 394‘e göre python3 olarak erişilebilir olmasını da mümkün kılar. Python 3 için büyük veri madenciliği kütüphanelerinin birçoğu artık erişilebilir hale .

Python 2’nin “/” (bölme) operatörü tamsayı bölmesinden kayan nokta bölümlemesine ve bir anahtar sözcükten bir işleve yazdırma olarak değiştirecektir.

Python sürümleri arasındaki farklar dizgeye dayalı işlemler için özellikle elverişli olmayabilir ancak altıncı modül konuyla ilgili daha fazla yardım sağlar.

Altıncı modül Python 2 ve Python 3 arasındaki farklar için basit araçlar sağlar. Bu araçla Python 2 ve 3 üzerinde modifikasyon olmadan çalışan kodların desteklenmesi amaçlanmıştır. Altıncı modül tek bir Python dosyasından oluşur bu yüzden bir projeye kopyalamak son derece kolaydır. PyPi aracılığıyla indirilebilir.

Bulutta Python

Bazı web siteleri programcıların Python kodunu yüklemelerine ve web sitesinde çalıştırmasına olanak tanır. Google App Engine en tanınmış olanıdır. Google App Engine Python ile SDK geliştiricileri, Google sitesine bir yükleme yapmadan önce web uygulamasını yerel olarak geliştirebilir ve test edebilir. Veri kalıcılığı, belirli bir Google App Engine veri deposu tarafından yönetilmektedir.

SQL’e benzeyen GQL adlı ilişkili bir sorgu diline sahiptir. Web uygulaması Webapp2 çerçevesiyle yapılandırılabilir ve Jinja2 üzerinden şablon oluşturulabilir. Daha fazla bilgi Google App Engine Programlama (Programming Google App Engine) kitabında bulunabilir. Python’u bulutta çalıştırmak için başka birçok web sitesi vardır: pythonanywhere, Heroku, PiCloud ve StarCluster en bilinenleridir. Bir diğer websitesi olan Pythonanywhere ise geleneksel veri madenciliği paketlerine, Flask web çatısı, sunucu erişimi ve hata günlüklerine web erişimi sağlar.

Python’u Tarayıcıda Çalıştırmak

Bazı sistemler yerel kurulum gerekmeden Python’u web tarayıcısı ile çalıştırmanıza izin verir. Genellikle, tarayıcı Python’u çalıştırmaz bunun yerine bir web servisi Python kodunu, kodu çalıştıran ve sonucu döndüren uzak bir sisteme gönderir. Bu tür sistemler hızlı ve işbirlikçi Python gelişimine izin verebilir.

Runnable şirketi http://runnable.com adresinde yer alan site aracılığıyla kullanıcıların Python kodunu doğrudan tarayıcıya yazabileceği ve sistemin sonucunu çalıştırıp sonuç vermesine izin veren bir hizmet sunmaktadır. Bulut hizmeti Wakari ise https://wakari.io ile kullanıcıların bulut tabanlı Jupyter Notebook oturumlarıyla çalışmasına ve paylaşmasına izin veriyor.

Python’un Skulpt uygulaması bir tarayıcıda çalışır ve http://www.skulpt.org adresinde çalışır. Diğer bazı web siteleri tarafından kullanılır. Örneğin CodeSkulptor (http://www.codeskulptor.org) bunu kullanan bir sitedir. Codecademy kodlamayı öğrenmeyi amaçlayan bir web sitesidir ve Python desteklenen programlama dilleri arasında yer alır. Online Python Tutor interaktif ortamını program görselleştirmesi ile göstermek için kod yürütüldüğünde Python’daki değişkenlerin nasıl değiştiğini göstermek için kullanır. Bu siteler Python’u yeni öğrenenlere iyi hizmet edebilir ve aynı zamanda hata ayıkladıklarında daha deneyimli bir programcı olmalarını da sağlayabilir.

Bir diğer websitesi Code Golf ise http://codegolf.com adresinden kullanıcıları en az karakterle kodlama problemlerini çözmek için yarışmalar yapıyor.

Bu tür hizmetlerin veri madenciliğiyle az ilgisi vardır. Örneğin Runnable, numpy kütüphanesiyle yazılan kodları içe aktarmanıza izin vermez ancak Python’u öğrenmenin alternatif bir yolu olabilir. Python 2’nin bir alt kümesini uygulayan CodeSkulptor ise programcının sayısal verileri numeric, simplegui, simplemap, simpleplot ile matris hesaplamalarını ve sayısal verileri çizmesine olanak sağlar.

Yazıyı Puanla

Bir önceki yazımız olan Neden Python ile Veri Madenciliği Yapılır? başlıklı makalemizde python, python veri madenciliği ve veri madenciliği hakkında bilgiler verilmektedir.