Exe yapmak için cx Freeze'yi CMD den yükledikten sonra dosya bulunamadı hatası

Merhaba yazdıgımız programları exe haline getirmek için kullandığımız cx Freeze programını Windows cmd den pip install cx_Freeze ile bilgisayarıma kurdum. Ve Program dosyasının olduğu klasör içinde gerekli dizinlerin oluşturulması için tekrar cmd ekranından py setup.py build komutunu girdim. Fakat ilgili klasör yada dizin bulunamadı hatası alıyorum.

Program dosyasının adını kodda ilgili yerlere tanıttım.

Powershell üzerinde komutu verdiğiniz dizin ile setup.py dosyasının olduğu dizin farklı. C:\PythonDosyalar dizinine geçiş yapmanız lazım.

Teşekkür ederim o bölümü hallettim sayenizde ama bu seferde dosyayı çalıştırırken syntax hatası verdi dosya isminden mi acaba…

Değişken isimleri sayı ile başlayamaz.

Aslında bu dosya ismi ama tabi uygulamada değişken gibi kullanıldı siz uyarınca jeton düştü . Birde alt Tire ‘_’ işaretinde hata gosteriyor. Hemen düzeltip kontrol edeyim.

Tam dikkat etmemişim. Bir de nokta koymuşsunuz. Çok yanlış değişken isimlendirmesi yapmışsınız. Şöyle yapmanız lazım

alti_fen_b_yoklama_py = ...

Dediğim gibi bu dosya ismini yaratırken bunun değişken olarak kullanılacağı aklıma gelmedi. Setup konusunu okuyunca dur bir şu dosya üzerinde oluşturayım diyince bunlar meydana geldi. Artık bundan sonra dosya isimlerini de sanki bir değişkenmiş gibi düşünüp isimlendiririm.

Haydaaaa Nur topu gibi bir hatam daha oldu bu sefer dosya içeriğinde sorun ama ama syntax neden S harfini gösteriyor

Screenshot_21

Dosya içeriği de aşağıda… sanırım encodıng =‘utf-8’ yapmam gerekiyor dosyayı
Screenshot_22

@coderistan Pardon zaten utf-8 öyleymiş

Screenshot_23

.py uzantılı dosyaya neden kayıt yapıyorsunuz? Siz 100: isim şeklinde python dosyasına kayıt yaparsanız, çalışma sırasında syntax hatası almanız normal.

@coderistan itapta anlatıldığı şekilde uygulamayı py uzantılı şekilde kaydetmem söylendiği için o şekilde kaydettim. dosya normalde ilk olarak txt.uzantılı olarak kaydedilmişti kitaptaki yönergeleri izliyorum ama kafam karıştı şimdi iyice. Benim normalde setup dosyasını uygulamam için hazırlamam lazım ama ben uygulamının sonuç çıktısını içeren dosyayı setup dosyası yapmaya çalışıyorum hay allah…

Evet sonunda başardım ilk exe kurulum lu programımı hayata geçirdim. Biraz geri zekalılık sosu ile tatlandı ama ama olsun sonunda oldu :grinning:

Bu da exe ile çalışan Yoklama programının çalışmasıyla oluşturulan dosyanın çıktısı.


Kodları Merak eden belki olur

import datetime
from datetime import datetime as dt
import os

print("-" * 25)
now = datetime.datetime.now()
students = {101: "Mehmet Ali KARABUÇ", 102: "Ahmet edip", 103: "Arda Özel", 104: "Aybüke", 105: "Ayşe Beyza YILMAZ",
            106: "Ayşe Nisa Şahin", 107: "cemre", 108: "destina çalıcı", 109: "Durdane Sarı", 110: "Eda Yücel",
            111: "Esra Körün", 112: "Fatma Zehra Karakaya", 113: "Kemal Uçar", 114: "Kutalmış Yılmaz",
            115: "M.Buğra Şahin", 116: "Melda Cırık", 117: "mertali erdemir", 118: "Miray Yılmaz",
            119: "Muhammetmetehan", 120: "Muhammet Emir Demirci", 121: "MUSTAFA KAYA", 122: "nehir durgun",
            123: "Ömer utku ipek", 124: "Simay Tuluk", 125: "sude özdin", 126: "Tuğba Gündoğan", 127: "Tuna Ünüvar",
            128: "Yağmur Ceylin Kurtcu", 129: "Yezdan Göbüt", 130: "Yusuf Loğoğlu", 131: "Zeynep Büşra Akbaş"}
inDict = {}
outDict = {}
dict_count = 0
while True:
    if dict_count == len(students):
        break
    for key, value in students.items():
        print(key, value)
        result = input("If student in class, ( press: v ), If not ( press y ) : ")
        result = result.lower()
        if result == 'v':
            inDict[key] = value
        elif result == 'y':
            outDict[key] = value
        else:
            print("Wrong Enter")
            while True:
                result = input("You have to press 'V', If student is in the class, If not  press 'Y'  : ")
                if result == 'v':
                    inDict[key] = value
                    break
                elif result == 'y':
                    outDict[key] = value
                    break
                else:
                    print("Mr.Idiot , If student is in the class, press: v. If not, press y : ")
                    continue

        dict_count += 1
print()
yol = os.sep.join(
    [
        "C:",
        "PythonDosyalar",
        dt.now().strftime("%d.%m.%Y") + " Yoklama_6_Fen_B.py"
    ]
)
with open(yol, 'w', encoding='utf-8') as f:
    f.write(dt.now().strftime("%d.%m.%Y\n"))
    f.write(f"Total Students : {len(students)}\t")
    f.write(f"Total In : {len(inDict)}\t")
    f.write(f"Total Out : {len(outDict)}\n")
    f.write('\nAbsent Students\n')
    f.write(50 * "-")
    f.write("\n")
    for x, y in outDict.items():
        f.write(f"{x} : {y}\n")
        f.flush()
print("-" * 50)