Uygulamamı bitirmeden önce birkaç soru

Merhaba benim yazdığım programda sonlara yaklaştım ancak aklıma birkaç şey takıldı onları tek gönderi ile sormak istedim.
1)Ben bu uygulamayı exe haline çevirip bir arkadaşıma attığımda direk çalışacakmı? Ve internetten indirdiğimiz uygulamalar gibi nasıl uygulamayı bilgisayara kurulmasını sağlayabilirim(Aslında anlatmak istediğim şu uygulamamı ilk önce açsın kur desin bilgisayarında gerekli kurulum işlemleri tamamlansın dosyaları gerekli yerlere yerleştirsin gibi)
2)Karşı tarafta python kurulu değil ise nasıl başlangıç ekranında python kurulumu yaptırabilirim(daha doğrusu exe sonrasında pythonın kurulu olmaya ihtiyacı varmı? eğer varsa uygulamamın içinden kurulum yaptırmayı başarabilirmiyim?)
3)Ayrıca arkadaşlarıma gönderdikten sonra büyük ihtimal dosya yolları sorun çıkaracaktır onu nasıl çözerim acaba?

Abi kodlarını at meraktan değil önemli bir şey bu
Ona göre cevao vercem
Exeyi pyinstaller ile yapabilirsin

Merhaba,

Yapmaya çalıştığınız şey genelde derleyiciler ile üretilen programlarda tercih edilen bir yol. Bir Python betiğini executable hale getirmek istediğinizde, yorumlayıcı da oluşacak dosyalara dahil edilir. Ayrıca programınızda kullandığınız kütüphane sayısı ne kadar fazla olursa, paylaşacağınız dosyanın boyutu da o kadar fazla olacaktır. Bu basit bir programın büyük bir boyuta sahip olabileceği anlamına geliyor.

Şahsen, Python dosyalarının exe haline getirilmesine sıcak bakan birisi değilim. Bunun yerine kullanıcılar yorumlayıcıyı yükleyebilirler. Sonra da kullanıcılarla paylaştığınız basit bir batch dosyası da bütün gerekli kütüphanelerin kurulumunu gerçekleştirip, sonunda programın çalışmasını sağlayabilir.

batch dosyası çalıştırılır çalıştırılmaz, requirements.txt adıyla paylaştığınız dosyaya yazılmış kütüphaneleri yükleyebilir.

Veya, requirements.txt dosyası yerine bir tane run.py isminde bir dosyanız olur. batch dosyası run.py dosyasını çalıştırır. run.py; yüklenmesi gereken kütüphanelerin yüklü olup olmadıklarını sorgulayabilir. Bu kütüphanelerden yüklü olmayanlar yüklenir ve sonra da ana uygulama çalıştırılır.

Basit bir run.py dosyası şöyle yazılabilir:

import os
import sys
import subprocess

installed_packages = [
    p.decode().split("==")[0]
    for p in subprocess.check_output(
        [sys.executable, "-m", "pip", "freeze"]
    ).split()
]

packages = ["numpy", "matplotlib"]

for package in packages:
    if package not in installed_packages:
        os.system(f"{sys.executable} -m pip install {package}")

if __name__ == "__main__":
    import Scripts
    Scripts.main()

Bu yukarıdaki kodlar, önce kütüphanelerin yüklü olup olmadığını denetler, yüklü olmayan kütüphaneler yüklenir, sonra da Scripts dizinde yer alan __init__.py dosyasının çalışması sağlanır.

Exe haline getirdiğiniz programın içinden, tekrar Python yorumlayıcısını kurmaya gerek yok. Çünkü yorumlayıcı exe haline getirdiğiniz programın içine yerleştirilir. Dolayısıyla eğer exe uzantılı bir dosya paylaşmak istiyorsanız, kullanıcıların bilgisayarında Python’ın olmasına gerek yok.

Bu durumu düşünerek, dosya yollarını esnek bir şekilde belirtmeniz lazım. Dosya yolları programın çalışacağı dizinde ise, dosya ve klasör isimlerini açıkça kullanabilirsiniz. Ama eğer programın bulunduğu dizinin üstüne çıkacaksanız, o zaman bu duruma göre bir düzenleme yapmanız gerekir.

4 Beğeni