1. Ayyıldız Tim forumu Hariç Hiç Bir şekilde Rütbeli Oldugunu İddaa edenlere inanmayınız..⠀ Ayyıldız Tim Adına Sizden Bilgi Belge TC Kimlik Vb Evrak İsteyenlere Asla Bilgilerinizi Vermeyiniz.

Cython Ile Daha Hızlı Python

'Python' forumunda Bağaşa Kağan tarafından 26 Ekim 2019 tarihinde açılan konu

    • Guest
    Katılım:
    8 Eylül 2016
    Mesaj:
    1,015
    Alınan Beğeniler:
    1,661

    Özel Mesaj
    [​IMG]

    Cython; basit olarak Python için C genişletmeleri(extension) yazmamızı sağlayan bir programlama dilidir. Bunu, Python söz dizimi ile C fonksiyonları ve değişkenler üzerinde tip(static type) belirtmemizi sağlayarak yapar, bu şekilde oluşturduğu C kodunu da bir Python extension’ı olarak çalıştırarak Python içerisinde kullanabileceğimiz C hızında fonksiyonlar elde ederiz.

    Anaconda kullanıyorsanız Cython kurulu olacaktır sisteminizde, güncellemesine bakmanızda fayda var. Eğer Anaconda kullanmıyorsanız işletim sisteminize göre kurulum işlemleri değişiklik gösterecektir. PIP üzerinde basitçe “pip install Cython” komutuyla kurabilirsiniz. Bir sorun yaşarsanız resmi sayfasına buradan bakabilirsiniz.

    Python’un aksine Cython’u kullanabilmek için önce bir derleme aşamasından geçmesi gerekli. Bu aşamada önce kodumuz C’ye çevrilecek ve daha sonra Python uzantısı haline getirilecek.

    İlk Cython kodumuzu yazabiliriz. IPython üzerinde çalışan Spyder(Jupyter ile de sorunsuz çalışacaktır) ile Python 3.6 ortamında bu denemeyi yaptım. Anaconda ile kurulu geldiği için bir Cython kurulumu yapmadım.

    IPython’a Cython eklentisini yüklemesi için “%load_ext Cython” komutu çalıştırıyoruz. Bunun sayesinde %%cython magic’ini kullanabileceğiz.

    Daha sonra aşağıdaki kodu çalıştırarak C ile yazılmış Python içerisinde kullanabileceğimiz bir fonksiyon oluşturmuş oluyoruz.

    Kod:
    %%cython
     
    def selam_ver(isim):
        print("Selam %s!" % isim)
    %%cython; bu satır kodumuzun ilk satırı olmalı, bunun sayesinde kodumuzu ayrı bir dosyada yazıp komut satırı ile derleme zahmetinden kurtuluyoruz.

    Daha sonra bu fonksiyonumuzu normal bir Python fonksiyonu gibi kullanabiliriz.

    Kod:
    selam_ver("AyyıldızTim")
    # Selam AyyıldızTim
    unable to find vcvarsall.bat hatası;
    Cython’un kullandığı bir dosyaymış ve sadece Cython ile değil birkaç Python paketiyle de sorun çıkarmasıyla meşhur. Python’un belirttiğine göre; bazı paketlerde ve Cython ya da Pyrex dosyalarını derlemede C++ derleyicilerine ihtiyaç duyarız. vcvarsall.bat dosyası da bu derleme işlemlerinde kullanılan bir dosya. Bu dosya nereden geliyor peki? Python versiyonunuza göre uydurmanız gereken Visual Studio Build Tools paketinden bu dosyamız çıkacaktır.
    Python 3.6 için Microsoft Build Tools for Visual Studio 2017 kurmam gerekiyor ve şu linkten indirip kurduktan sonra IPython’ı tekrar başlatarak yeniden denediğimde sorun gitmişti. (Linkte Türkçe olarak “Visual Studio 2017 için Derleme Araçları” yazabilir)

    Tabi ki bu örnek Cython’un katkısını görmek için yetersiz. Bu konuda en iyi örneği Pandas bize sunmuş. Pandas için C Eklentileri Yazma başlığıyla verdiği bu örnekte saf Python ile 174 milisaniye süren bir işlemi 987 mikrosaniyeye düşürebilmiş. 175 katı bir hızlanma ile Cython’un çok başarılı bir şekilde kullanabilmişler.


     
    Mr-Onion, MEY34 ve Orion-Pax bunu beğendi.
  1. Hack_Baby Guest

    • Guest
    Katılım:
    10 Kasım 2020
    Mesaj:
    40
    Alınan Beğeniler:
    25

    Özel Mesaj
    Güzel Devrem
     
    Orion-Pax bunu beğendi.
  2. MSB6272 Guest

    • Guest
    Katılım:
    30 Kasım 2020
    Mesaj:
    11
    Alınan Beğeniler:
    11

    Özel Mesaj
    arkadaşlar python dilini en iyi baştan nerden öğrenebiliriz
     
  3. bonus Guest

    • Guest
    Katılım:
    17 Ekim 2019
    Mesaj:
    3
    Alınan Beğeniler:
    0

    Özel Mesaj
    Python dilini en iyi şekilde U
    demy gibi kurs platformlarından öğrenirsiniz. Ama tabi ki nesneye yönelik programlama ve döngüler her programlama dilinde olduğu gibi Python da da çok önemlidir bu ikisini çok iyi bir şekilde mantığını kavrayarak ilerlemek size katkı sağlar en iyi kaynak diye bir şey yoktur çok iyi araştırıp okuyup anlayıp uygulayabilmek diye bir şey vardır.
     
  4. topyekun1923 Guest

    • Guest
    Katılım:
    29 Kasım 2020
    Mesaj:
    63
    Alınan Beğeniler:
    135

    Özel Mesaj
    Youtube , udemy ( ücretsiz ) , xbowtie gibi platforumlardan kurslara ücretsiz erişim sağlayabilirsin devrem ( ücretli de vardır lakin önermiyorum ) Her şey sana kalmış devrem emek olursa rahatlıkla yapabilirsin , mesela seri vardır o seriyi bitirdikten sonra uygulama yapmalısın veya hata aldıysan pes etme , çöz ... Kolay gelsin devrem
     
    Orion-Pax bunu beğendi.
  5. ReaListik Guest

    • Guest
    Katılım:
    21 Şubat 2021
    Mesaj:
    3
    Alınan Beğeniler:
    8

    Özel Mesaj
    BTKakademi den izliyorum ben gayet sıralı bir şekilde gidiyor videolar.
     
    Orion-Pax bunu beğendi.
  6. qwerttr Guest

    • Guest
    Katılım:
    20 Ocak 2014
    Mesaj:
    5
    Alınan Beğeniler:
    5
    Meslek:
    weqweqweqw

    Özel Mesaj
    Pypy3 daha hızlı diye biliyorum
     
    Orion-Pax bunu beğendi.

Bu Sayfayı Paylaş