/ Python Modül Yazmak ve Çağırmak /

0x1D

Kıdemli Üye
23 Nis 2020
2,651
78
MARS


BAŞLIKLAR
Modül Nedir ?
Modülleri sınıflandıralım:
Modüllerimizi nasıl içe aktarabiliriz ?
Modüllerin Yolları Hakkında
Üçüncü Şahıs python modüllerini yüklemek- Pip



Modül Nedir ?

Modül bazı işlevleri kolaylıkla yerine getirmemizi sağlayan birtakım fonksiyonları, sınıfları ve objeleri içinde barındıran araçlardır. Modüller Python'un bel kemiğidir diyebiliriz. Eğer modüller olmasaydı, Python programlama dili hem çok kullanışsız bir dil olurdu, hem de modüller sayesinde çok kolay bir şekilde üstesinden gelebildiğimiz zorluklar için her defasında kendimiz yeniden bir çözüm icat etmek zorunda kalırdık.
Diyelim ki bir program yazıyorsunuz. Yazdığınız bu programın içinde karakter dizileri, sayılar, değişkenler, listeler, demetler, sözlükler ve fonksiyonlar var. Programınız da .py uzantılı bir metin dosyası içinde yer alıyor. İşte bütün bu öğeleri ve veri tiplerini içeren .py uzantılı dosyaya ‘modül’ adı verilir. Yani şimdiye kadar yazdığınız ve yazacağınız bütün Python programları aynı zamanda birer modül adayıdır.



Modülleri sınıflandıralım:

1- Kendi tanımladığımız modüller
2- Hazır modüller
‏‏‏‏‏‏‏‏ ‏‏‏‏‏‏‏‏‏‏‏ ‏‏‏‏‏‏‏‏‏‏ ‏‏‏‏‏‏‏‏ a)Üçüncü şahıs modüller
‏‏‏‏‏‏‏‏ ‏‏‏‏‏‏‏‏ ‏‏‏‏‏‏‏‏ ‏‏‏‏‏‏‏‏ b)Built-in(gömülü modüller)


Built-in (Gömülü modüller)

Standart Kütüphane Modülleri, doğrudan Python geliştiricileri tarafından yazılıp dile kaynaştırılmış modüllerdir. Herhangi bir ek yazılım olmadan direkt olarak projemize aktarıp kullanabiliriz. Örnek built-in modüller :

Socket
Random
Os
Buradan tüm built-in modülleri görebilirsiniz : https://docs.python.org/3/library/


Üçüncü Şahıs Modüller

Python'dan bağımsız yazılımcılar tarafından geliştirilen modüllerdir. Ek yazılımlar ile bu modülleri yüklememiz gerekmektedir.

Örnek üçüncü şahıs modüller :

Requests
- Beatiful Soup
+ Beautiful Soup
Discord.py



Modüllerimizi nasıl içe aktarabiliriz ?

- Python'da modüllerimizi kullanmamız için önce içe aktarmamız gerekmekte. Hem built-in modüller hem de üçüncü parti modüller için bu geçerlidir.
+ Python'da modüllerimizi kullanmamız için önce dahil etmemiz gerekmekte. Hem built-in modüller hem de üçüncü parti modüller için bu geçerlidir.

Kod:
import socket


Şeklinde socket modülümüzü dahil edebiliriz.

Modülümüzün hangi fonksiyonları ve nitelikleri sunduğunu öğrenmek için dir() fonksiyonunu kullanabiliriz:

Kod:
dir(socket)

Birazdan yapacağımız şeyleri daha iyi anlamamız için kendi modülümüzü yapıp dahil edelim. Herhangi bir ad ile kaydedebiliriz ben modulum.py olarak kaydediyorum.
Kod:
Nick = '667'
Yas = 25
Liste = ['eleman0','eleman1','eleman2']


Modülümüzü dahil edip içindeki verileri çekelim :


Kod:
import modulum

print(modulum.Nick)
print(modulum.Yas)
print(modulum.Liste)

Çıktım :

Kod:
667
25

['eleman0','eleman1','eleman2']


Eğer kolaylık olması açısından nesnemizi modülümüzden direkt olarak almak istersek:


Kod:
from <modül_ismi> import <nesne>


Şeklinde yapabiliriz. Bunu kendi modülümüze uygulayarak nickimizi çekelim :


Kod:
import modulum
print(Nick)


Çıktı :


Kod:
667


Tüm nesneleri çekmek istersek :


Kod:
from modulum import *


Bazen modüllerimizin ismi uzun olabilir ve her seferinde modül ismimizi yazmak sıkıcılaşabilir. Bunu engellemek için içe aktardığımız modülümüzü kendi verdiğimiz isimle kullanabiliriz.

Kod:
import <modul_adi> as <kullanacağım_isim>

Örnek :
Kod:
import time as zaman
zaman.sleep(5)

Bu şekilde yaptığınızda zaman. yazdığınız an time modülünün fonksiyonları zaten görünecektir.


Modüllerin Yolları Hakkında


Kütüphane modüllerini her yerden içe aktarabiliyoruz. Yani, komut satırını çalıştırdığımız her konumda veya program dosyamızın bulunduğu her dizin altında bu modülleri rahatlıkla kullanabiliyoruz. Python’ın bu modülleri bulamaması gibi bir şey söz konusu değil.

Ama kendi yazdığımız modülleri içe aktarabilmemiz için, bu modüllerin o anda içinde bulunduğumuz dizin altında yer alması gerekiyor. Yani mesela yukarıda örneğini verdiğimiz modulum modülünü, modulum.py dosyasını bilgisayarımızdaki hangi konuma kaydetmişsek o konumdan içe aktarabiliyoruz.

Diyelim ki modulum.py dosyasını masaüstüne kaydetmiştik. İşte bu modülü komut satırında içe aktarabilmemiz için, komut satırını da masaüstünün bulunduğu konumda çalıştırmış olmamız gerekiyor.

Bu durumun sebebi ne ?


Bir satırda import komutunu verdiğimizde python bilgisayarımızda bir arama başlatır. Tabii ki bu arama tüm diskimizi kapsamaz. Peki hangi yollarda arama yapıyor bu komut ?

Bunun cevabını öğrenmek için sys modülünün (built-in) path fonksiyonunu çalıştıralım :

Kod:
import sys
print(sys.path)

Bize çıktı olarak vereceği şey aslında bir liste. Bu listeye istediğimiz şekilde istediğimiz path'i ekleyebiliriz. Peki nasıl ?

Bu bir liste demiştik ve biz listelere .append() ile eleman ekliyoruz :

Kod:
import sys

print(sys.path)
sys.path.append('yol')

Eğer bunu yaparsak ve yol yerine kendi yazdığımız modülün yolunu verirsek modülümüzü istediğimiz yerden çağırabileceğiz. Çünkü modülümüzün yolu arama yapılan yolların bulunduğu listeye eklendi.



Üçüncü Şahıs python modüllerini yüklemek.


Öncelikle pip yüklememiz gerekmektedir.

Ubuntu,Debian,Mint için Pip kurulumu :

Kod:
sudo apt-get install python-pip

Fedora için Pip kurulumu :

Kod:
sudo yum install python-pip

Archlinux

Kod:
sudo pacman -S python-pip

Windows için :


Get Pip dosyasını bilgisayarınıza indirin ve cmd'den buluduğu konuma girin(cd klasör_adi).

Şu komutu çalıştırın :

Kod:
python get-pip.py

Pip bilgisayarınıza kurulacaktır. Dosya bulunamadı hatası alırsanız get-pip.py dosyasının bulunduğu konumu tekrar kontrol edin.

Modülleri yüklemek

Kod:
pip install <modul>

Modülleri Silmek
Kod:
pip uninstall <modul>




 
Moderatör tarafında düzenlendi:

'Execution

Kıdemli Üye
13 Ocak 2018
3,227
29
Cevap: Python'da Modüller

Ellerine sağlık. Gayet açıklayıcı ve sade bir konu olmuş. Konu estetiği de aynı şekilde sade ve göze hitap edecek şekilde. Daim olsun..
 

x4807

Katılımcı Üye
10 Ağu 2019
985
16
Cevap: Python'da Modüller

Emek var. Eline sağlık, güzel olmuş :))
 

SiyahYunus

Katılımcı Üye
4 Ocak 2020
560
2
Cevap: Python'da Modüller

Sadece debian ile kalmayıp, yanında slax ve arch koyman gerçekten güzel detay olmuş. Eline emeğine sağlık. Daim olsun.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.