.exe'yi Güncelleyemiyorum

Şu ana kadar konuştuklarımızın tamamını .py’den .exe’ye çevirip çalıştırdığım için hata alıyorum yoksa derleyicide herhangi bir hata bende almıyorum

Ne demek bu? (bilmediğim için soruyorum)

knk bende diyorum ki türkçe karakter kullanıyorsun codec hatası alıyorsun diyorum dedim ya zaten türkçe karakterleri kaldır diye
ben yazdım tamam mı yerelde version.txt dosyası var
ilk başta 1.1.1 yazıyor version.txt dosyasının içinde
programı çalıştırdığın githubdan veriyi çekiyor sonra pyinstaller ile exe’ye çeviriyor sonra sonra çevirilen exe dosyasını çalıştırıyor o da çalışınca version.txt dosyasını 1.2.2 yapıyor ve güncelliyor ben dedim zaten türkçe karakterleri kaldır diye

1 Beğeni

saf demek pure py temiz

1 Beğeni

1 Beğeni

Çok güzel yazmışsın burada. Referans alarak öğrenicem fakat baktığımda göz gezdirirken takıldığım şurası run_command(command,hide=True) run_command olarak çağırdığın fonksiyonu nasıl yaptın, yani bunun çalışması nasıl

aslında zor değil
cmd üzerinde hide process yapmak için
komut_dizesi 2> nul
örnek
pyinstaller --onefile arif.py 2> nul

linux için

ls > /dev/null 2>&1
en sonda ki 2>&1 eğer olurda yazılan komut hata çıkartırsa stderr’i stdin’e aktarıyor böylece hatayı ekrana bastırmiyor
def run_command(*command,hide=None):

commands = command

all_command_wrapper = “”

if not hide:

  hide = False

for comm in commands:

  all_command_wrapper+=comm

if hide:

  os.system(f"{all_command_wrapper} 2> nul")

else:

  os.system(f"{all_command_wrapper}")

evet böyle daha çok hoşuma gidiyor proje geliştiriyorum arkaşım yok :confused: bu yüzden buraya üye oldum

1 Beğeni

def ekrana_bastir(*print_args: str) → str:
all_words = print_args
words = “”
for my_words in all_words:
words+=my_words + " "#Karışıklık olmasın diye boşluk koyuyor
print(words)

1 Beğeni

yardımcı olmak isterim fakat benden epeyce bir bilgiye sahip gibisin ayak bağı olmayayım… :slight_smile:

estağfurullah önemli değil
:str yaparken alacağı parametrenin nasıl hangi veri tipte olacağını gösteriyor → str: ise fonksiyonun nasıl tipte veri döndüreceğini gösteriyor bunlar çok önemli eğer olurda inşAllah proje geliştirirsen bunları yazmanda fayda var çünkü kullanıcı bu aracın/fonksiyonun nasıl bi veri tipi vericeğini bilemez o yüzden önemli
def merhaba():
“”“Merhaba ben docstring fonksiyon hakkında bazı bilgiler paylaşıyorum geliştiricim sana daha kolay olsun diye beni buraya bıraktı gibisinden yazarsan iyi olur”""
hangi alanda ve pythonun hangi aşamasındasın e.g while loops try except raise class inheritance…

1 Beğeni

@Arif_RYG
Şöyle bir repo oluşturdum, bunu test edebilir misin windowsda?

2 Beğeni

cihat abi güzel olmuş eline sağlık

2 Beğeni

Gayet güzel bir şekilde güncelledikten sonra belirtilen .exe dosyasını indiriliyor ellerinize ve emeğinize sağlık hocam. Şunun bilgisini sizden rica edebilir miyim? şu .exe yi nasıl eklediniz github reposuna

Ya kendimi herhangi bir alana tanımlıyamıyorum ama dönüp kendime baktığımda masaüstü veya herhangibi uygulama geliştiricisi olma yolunda ilerliyormuş gibi hissediyorum hangi konudasın diye soracak olursan while loops try except konularını geçmiş python için ileri seviye fonksiyonlara (konu olarak)çalışıyorum diyebilirim. (yeni geçtim bu konuya. Neden bu kadar geciktin diye soracak olursan şöyle bir cevap verebilirim Bilmiyorum :slight_smile: )

@Cihat_Altiparmak Tamam hocam söylemenize gerek kalmadı sürükle bırakmış. saat geç oldu ya birde heycana kapıldım çünkü yapabilen biri var ve örnek verdi diye kusura bakmayınnnn :smiley:

Merhaba,

bulunduğum dizin yapısı

uygulama.exe
uygulama.py
version.json

$ git clone https://github.com/CihatAltiparmak/update_test_repository.git
$ cp uygulama.py update_test_repository/
$ cp uygulama.exe update_test_repository
$ cp version.json update_test_repository
$ cd update_test_repository
$ git add .
$ git commit -m "ilk commitim"

# eğer ilk defa git kullanıyorsan soru soracak. Eğer soru sorarsa sen de şöyle yap
$ git config --global user.email "your_email"
$ git config --global user.name "your_github_nick"
$ git commit -m "ilk commitim"
$ git push

olay bu kadar

Niye kusura bakacam canım? Ben böyle yaptım kendi linux terminalimde. Elinin altında bulunsun.

1 Beğeni

Hocam tekrardan merhaba. Sizin örnek üzerinde biraz düşünüp değişiklik yaptım. Scriptleri karşılaştırmaktansa tekrardan versiyonları karşılaştırıp güncel olan .exe yi indirtebildim.(değişiklik şurda .json değilde [aslında sonradan değiştirilebilir] .txt dosyası olarak belirledim ve x modunda açtım[bir kullanıcıda bu txt dosyası bulunmayacağı için bu mod sayesinde kullanıcıda oluşturulucak] try-except bloklarında yapmaya karar verdim.[çünkü x modunda bir dosyayı açtıktan sonra birkez daha o modda açınca zaten böyle bir şeyin var olduğuna benzer anlamda bir hata veriyordu o hatayı yakalayıp varsa güncelle ve sürüm eşitse de güncelleme gibi işlemleri yaptım ]) Teşekkür ediyorum… farklı düşündürttüğünüz için @Cihat_Altiparmak,
Size de teşekkür ederim @Alperen_CAVUS yardım ederken açıklayıcı cümlelerde bulunduğunuz için
şöyle kodları bırakayım ihtiyacı olan kullansın veya örnek teşkil etmesi açısından bulunsun:

from urllib.request import urlopen
import urllib.error
from getpass import getuser
import requests

try:
    with open("C:\\Users\\"+getuser()+"\\Desktop\\Coding\\Dogaclama\\4-proje\\versiyon.txt","x") as z:
        pass
except FileExistsError:
    version_url = "https://raw.githubusercontent.com/Arif-Helmsys/test/main/version.txt"
    exe_url = "https://github.com/Arif-Helmsys/test/blob/main/uygulama.exe?raw=true"
    r = requests.get(exe_url, allow_redirects=True)

    url = urlopen(version_url)
    info = url.read().decode()
    with open("C:\\Users\\"+getuser()+"\\Desktop\\Coding\\Dogaclama\\4-proje\\versiyon.txt","r") as f:
            f.seek(0)
            docs = f.read()
            if info == docs:
                print("güncel")
            else:
                print("Güncel Değil")
                with open("C:\\Users\\"+getuser()+"\\Desktop\\Coding\\Dogaclama\\4-proje\\versiyon.txt","w") as h:
                    h.write(info)
                with open("C:\\Users\\"+getuser()+"\\Desktop\\Coding\\Dogaclama\\4-proje\\uygulama.exe","wb") as g:
                    g.write(r.content)
                print("Güncellendi!!!!")
except urllib.error.URLError:
      print("hata internet bağlantınızı kontrol edin")
1 Beğeni