Otomatik Paket indirici

Otomatik Python Kütüphane indirci kodları:

import tkinter as tk
import os

def indir():
    data1 = değer1.get()
    data2 = değer2.get()

    os.system("pip{} install {}".format(data2,data1))


pencere = tk.Tk()
pencere.geometry("350x300")
pencere.title("Paket Yükleyici v0.1")
pencere.resizable(False,False)

değer1 = tk.Entry(font="Verdana 13",fg="AQUA")
değer1.place(x=20,y=20)

değer2 = tk.Entry(font="Verdana 13",fg="RED")
değer2.place(x=20,y=60)

buton1 = tk.Button(text="İndir",fg="GREEN",font="Verdana 15",command=indir)
buton1.place(x=20,y=100)

buton2 = tk.Button(text="İptal Et",fg="RED",font="Verdana 15",command=exit)
buton2.place(x=20,y=150)

lamel1 = tk.Label(text="Kütüphane Adı",fg="RED")
lamel1.place(x=250,y=25)

lamel2 = tk.Label(text="Python sürümü",fg="GREEN")
lamel2.place(x=250,y=65)

pencere.mainloop()
os.system("pip{} install {}".format(data2,data1))

Kısmı İndirmeryi yapıyor

4 Beğeni

güzel olmuş yeni baslayanlar için

1 Beğeni

Hem yeni başlayanlar için hemde dolaylı olarak öğrenecekler için iyi oldu
mesela ben @dildeolupbiten sayesinde şunu öğrendim

print(f"isim :{self.isim} \nNumara : {self.numara}")

gibi…

1 Beğeni

Elinize sağlık güzel olmuş, ilave olarak belki şunlar düşünülebilir:

  • exit’in direkt kullanımı bazı yerlerde (e.g. PyCharm) sıkıntı çıkarabilir, sys’den import etmek daha iyi olabilir.

  • os.system’in döndürdüğü değere bakılarak nizami bir indirme gerçekleşip gerçekleşmediği kontrol edilebilir, kullanıcı uyarılabilir (mesela kütüphane kısmına qwdnqwkd girdiğinde)

  • Python sürümü değeri kısmı default olarak 3 gelebilir.

  • format yerine bunu kulanabilirsiniz :d
1 Beğeni

Bu dediklerinizi öğrenir öğrenmez v0.2 için çalışmaya başlayacağım teşekkür ederim :slight_smile:

Rica ederim, sayenizde requests'i de sonunda yüklemiş oldum :d

2 Beğeni

Gerçektenmi işinize yaradımı

Evet, http'yi anlayabilmek adına requests ile bir şeyler yapmayı düşünüyordum ama yüklememiştim henüz, bugüne kısmetmiş.

1 Beğeni

isterseniz örnekte paylaşabilirim

import request
from bs4 import BeatifuSoup

url = "https://forum.yazbel.com"

r = request.get(url)
soup = BeatifuSoup(r.content,("html.parser"))
soup.find_all("a")
print(soup)

fazla özenmedim ama işiniz görür diye umuyorum

1 Beğeni
import tkinter as tk
import os
import sys
from subprocess import Popen, PIPE


def upgrade():
    os.system("pip install --upgrade pip")
def indir():
    rand = ["2","3"]
    data1 = değer1.get()
    data2 = değer2.get()

    if data2 == "":
        lamel3["text"] = "Sürüm boş kalamaz"
    elif data1 == "":
        lamel3["text"] = "Kütüphane adı boş kalamaz"
    elif data2 not in rand:
        lamel3["text"] = "Lütfen Default olan kısma bir sayı değeri girin(3 veya 2)"
    else:
        try:
            __import__(data1)
        except ModuleNotFoundError:
            os.system("pip{} install {}".format(data2,data1))
        else:
            lamel3["text"] ="Bu modül zaten yüklü"
        
    
    


pencere = tk.Tk()
pencere.geometry("365x310")
pencere.title("Paket Yükleyici v0.2")
pencere.resizable(False,False)

değer1 = tk.Entry(font="Verdana 13",fg="AQUA")
değer1.place(x=20,y=20)

değer2 = tk.Entry(font="Verdana 13",fg="GREY")
değer2.place(x=20,y=60)
değer2.insert(0,"3")

buton1 = tk.Button(text="İndir",fg="GREEN",font="Verdana 15",command=indir)
buton1.place(x=20,y=100)

buton2 = tk.Button(text="İptal Et",fg="RED",font="Verdana 15",command=sys.exit)
buton2.place(x=20,y=150)

buton3 = tk.Button(text="Pip Güncelle",fg="BLUE",font="Verdana 14",command=upgrade)
buton3.place(x=20,y=200)

lamel1 = tk.Label(text="Kütüphane Adı",fg="RED")
lamel1.place(x=250,y=25)

lamel2 = tk.Label(text="Python sürümü",fg="GREEN")
lamel2.place(x=250,y=65)

lamel3 = tk.Label(text="",fg="RED")
lamel3.place(x=20,y=250)

pencere.mainloop()

Buda yeni isterseniz bi bakın nasıl olmuş diye

güzel ama bence çıktıları orada bir text widgeti ile göster

1 Beğeni

senbox gibi bişey ilemi

nasıl yani senbox ne

wiget şu program kurulumlarında çıkan belirli yerde çikan yazılarmı

hayır yani buton label gibi anladın mı gui şeyleri

bende text widgetini kullan çıktıları oraya at dedim

tamam şunun gibi sanırsam

1 Beğeni

Bu da yeni kod daha neler eklemeliyim

import tkinter as tk
import os
import sys


def upgrade():
    os.system("pip install --upgrade pip")
    widget.insert("1.0","Pip Güncellendi\n")

def indir():
    rand = ["2","3"]
    data1 = değer1.get()
    data2 = değer2.get()

    if data2 == "":
        widget.insert("1.0","Sürüm boş kalamaz\n")
    elif data1 == "":
        widget.insert("1.0","Kütüphane adı boş kalamaz\n")
    elif data2 not in rand:
        widget.insert("1.0","Lütfen Default Kısma(3 veya 2) girin\n")
    else:
        try:
            __import__(data1)
        except ModuleNotFoundError:
            os.system("pip{} install {}".format(data2,data1))
            try:
                __import__(data1)
            except ModuleNotFoundError:
                widget.insert("1.0","Adı {} olan bir modül bulunamadı !\n".format(data1))
        else:  
            widget.insert("1.0","Bu modül zaten yüklü\n")
        
    
    


pencere = tk.Tk()
pencere.geometry("370x310")
pencere.title("Paket Yükleyici v0.2")
pencere.resizable(False,False)

değer1 = tk.Entry(font="Verdana 13",fg="AQUA")
değer1.place(x=20,y=20)

değer2 = tk.Entry(font="Verdana 13",fg="GREY")
değer2.place(x=20,y=60)
değer2.insert(0,"3")

buton1 = tk.Button(text="İndir",fg="GREEN",font="Verdana 15",command=indir)
buton1.place(x=20,y=100)

buton2 = tk.Button(text="İptal Et",fg="RED",font="Verdana 15",command=sys.exit)
buton2.place(x=20,y=150)

buton3 = tk.Button(text="Pip Güncelle",fg="BLUE",font="Verdana 14",command=upgrade)
buton3.place(x=20,y=200)

lamel1 = tk.Label(text="Kütüphane Adı",fg="RED")
lamel1.place(x=250,y=25)

lamel2 = tk.Label(text="Python sürümü",fg="GREEN")
lamel2.place(x=250,y=65)

widget = tk.Text(pencere,height=10,width=30,fg="BLUE",bg="BLACK")
widget.place(x=165,y=165)
widget.config(state="normal")

pencere.mainloop()

gayet hoş olmuş ama daha güzelleştirilebilr

1 Beğeni

Mesela ne eklesem daha iyi olur fikir veririmisin