Çözüldü Python EXE dosyasında logo yok

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Ar0nell

Hectopat
Katılım
27 Mart 2021
Mesajlar
30
Daha fazla  
Cinsiyet
Erkek
Merhaba, basit bir Python projesi yaptım ama şöyle bir sorunum var.
Logonun olduğu resimde programı py uzantılı olarak açıyorum, logo olmayanda ise EXE yapıp öyle açıyorum. Neden EXE yaptığımda py uzantılı olan gibi olmuyor?

Bash:
pyinstaller --onefile --noconsole program.py

Bu kod ile EXE yapıyorum.
 

Dosya Ekleri

  • Ekran görüntüsü 2024-10-16 153951.png
    Ekran görüntüsü 2024-10-16 153951.png
    6,3 KB · Görüntüleme: 67
  • Ekran görüntüsü 2024-10-16 154154.png
    Ekran görüntüsü 2024-10-16 154154.png
    3,7 KB · Görüntüleme: 64
Çözüm
Hem aynı dizide hemde dosya png ama anlamadım neden olmadığını.
Python:
import os
import sys

def resource_path(relative_path):
    try:
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")

    return os.path.join(base_path, relative_path)
Bu fonksiyonu programiniza ekleyin. Resmi kullanacaginiz zaman bu fonksiyon ile kullanin. Sonra ayni komutla derleyin. Ornek:
Python:
image1 = Image.open("image.png")
# yerine bunu kullanin:
image1 = Image.open(resource_path("image.png"))
Bash:
pyinstaller --onefile --noconsole --add-data "image.png:." program.py
Bu komut ile derleyin.
Kod:
image.png
kısmı kalsın mı yoksa onu bir şeyle değiştirmem mi gerek?

Edit: image.png kısmını logo.png yaptım (resmin ismi logo) ama yine de olmadı.
 
Son düzenleme:
Kod:
image.png
kısmı kalsın mı yoksa onu bir şeyle değiştirmem mi gerek?

Edit: image.png kısmını logo.png yaptım (resmin ismi logo) ama yine de olmadı.
  • Resmin uzantisina dikkat edin, png degil jpg olabilir.
  • Resim ile program.py dosyasinin ayni dizinde olmasi gerekiyor.
 
Hem aynı dizide hemde dosya png ama anlamadım neden olmadığını.
Python:
import os
import sys

def resource_path(relative_path):
    try:
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")

    return os.path.join(base_path, relative_path)
Bu fonksiyonu programiniza ekleyin. Resmi kullanacaginiz zaman bu fonksiyon ile kullanin. Sonra ayni komutla derleyin. Ornek:
Python:
image1 = Image.open("image.png")
# yerine bunu kullanin:
image1 = Image.open(resource_path("image.png"))
 
Çözüm
Python:
import os
import sys

def resource_path(relative_path):
    try:
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")

    return os.path.join(base_path, relative_path)
Bu fonksiyonu programiniza ekleyin. Resmi kullanacaginiz zaman bu fonksiyon ile kullanin. Sonra ayni komutla derleyin. Ornek:
Python:
image1 = Image.open("image.png")
# yerine bunu kullanin:
image1 = Image.open(resource_path("image.png"))
Oldu çok teşekkürler.
 

Technopat Haberler

Yeni konular

Yeni mesajlar

Geri
Yukarı