Python projesinden yürütülebilir bir exe dosyası nasıl oluşturulur?

Python projemizi tamamladık ve bu projeden tek bir yürütülebilir dosya oluşturmak istiyoruz.

Python projemizi tamamladık ve bu projeden tek bir yürütülebilir dosya oluşturmak istiyoruz. Bu sayeded bir kullanıcı Python’un yüklenmesine gerek kalmadan projemizi indirip çalıştırabilmeli. Projemizi bir paket olarak dağıtıyor olsaydık, pip, wheel ve PyPI’yi kullanabilirdik, ancak bu kullanıcının Python’a sahip olmasını ve paketleri nasıl kurabileceğini bilmesini gerektirecekti. Python projesinden bağımsız çalıştırılabilir bir dosya oluşturmak için ne yapabiliriz?


Yaygın olarak kullanılan yöntemlere bakalım (Temmuz 2021 itibarıyla aktif olarak sürdürülen projeler)

Aksi belirtilmedikçe, aşağıda listelenen tüm programlar özellikle çalıştığı işletim sistemi için bir exe oluşturur. Örneğin, Pyinstaller, Windows’ta çalıştırmak bir Windows exe üretecektir, ancak Pyinstaller’ı Linux’ta çalıştırmak bir Linux exe üretecektir. Birden fazla işletim sistemi için bir exe üretmek istiyorsanız, sanal makineler veya Wine gibi bir şey kullanmanız gerekir.


Aşağıdaki programların tümü benzer şekilde çalışır – Python ile kodunuzu bir araya getirerek bunları etkili bir şekilde birleştirir ve yürütülebilir bir dosya üretirler.

PyInstaller:

Web sitesi || Repo || PyPi

Windows, Mac ve Linux’ta Python 3.5 – 3.9’u destekler.

cx_Freeze:

Web sitesi || Repo || PyPi

Windows, Mac ve Linux’ta Python 3.6 – 3.9’u destekler.

py2exe:

Web sitesi || Repo || PyPi

Yalnızca Windows’ta Python 3.6 – 3.9’u destekler.

py2app:

Web sitesi || Repo || PyPi

Yalnızca Mac’te Python 2.7 (?) ve Python 3’i (?) destekler. Desteklenen Python sürümlerinin tam aralığı şu anda belgelenmemiştir.


Tabii ki bu işi yapmanın tek yolu yukarıdakiler değil:

pynsist:

Web sitesi || Repo || PyPi

Pynsist, programınız için python’u kodunuzla karıştırmak yerine doğrudan kullanıcının bilgisayarına yükler ve Python komut dosyanıza bağlanan kısayollar oluşturarak bir Windows yükleyicisi oluşturur.

Pynsist aracının kendisinin çalışması için Python 3.5+ gerekir, ancak Python’un herhangi bir sürümünü programınızla birlikte çalıştırmayı destekler.

Pynsist yalnızca Windows yükleyicileri oluşturur, ancak Windows, Mac ve Linux’tan da çalıştırılabilir. Daha fazla ayrıntı için SSS bölümüne bakın.

Nuitka:

Web sitesi || Repo (Github aynası) || PyPi

Nuitka, python kodunuzu tam anlamıyla derleyecek ve kodunuzu hızlandırmak için bir exe (python içeren diğer projelerin aksine) üretecektir. Yan etki olarak, dağıtabileceğiniz kullanışlı bir exe de elde edersiniz. Sisteminizde kullanılabilir bir C++ derleyicisi olması gerektiğini unutmayın.

Windows, Mac ve Linux’ta Python 2.6 – 2.7 ve Python 3.3 – 3.9’u destekler.

cython:

Web sitesi || Repo || PyPi

Cython, Python derleyicisi olması nedeniyle Nuitka’ya benzer. Ancak, kodunuzu doğrudan derlemek yerine C’ye derler. Daha sonra bu C kodunu alabilir ve kodunuzu bir exe’ye dönüştürebilirsiniz. Sisteminizde bir C derleyicisi olması gerekir.

Windows, Mac ve Linux’ta Python 2.6 – 2.7 ve Python 3.3 – 3.9’u destekler.


Kişisel tercihim PyInstaller’ı kullanmak. Kodunuzu hızlı bir şekilde ayağa kaldırabilir hatta koşturabilirsiniz. Ayrıca, numpy veya pygame gibi çeşitli popüler kütüphanelerle de güzel bir şekilde çalışmak için tasarlanmıştır. Çeşitli işletim sistemleri ve Python sürümleriyle de mükemmel uyumluluğa sahiptir.

Ancak, çok fazla zorluk olmadan cx_Freeze kullanarak çeşitli exe dosyaları da başarıyla oluşturdum, bu yüzden bu programı denemeyi de düşünebilirsiniz.

Henüz pynist, Nuitka veya Cython’u kapsamlı bir şekilde deneme fırsatım olmadı, ancak oldukça ilginç ve yenilikçi çözümler gibi görünüyorlar. İlk program grubunu kullanarak sorun yaşarsanız, bu üçünden birini denemeniz faydalı olabilir. Pyinstaller/cx_freeze tarzı programlardan temelde farklı çalıştıklarından, ilk grubun başarısız olduğu garip durumlarında başarılı olabilirler.

Özellikle, pynist’in kodunuzu dağıtma sorununu aşmada iyi bir yol olduğunu düşünüyorum: Mac’ler ve Linux zaten Python için yerel desteğe sahip ve Python’u Windows’a yüklemek gerçekten en temiz çözüm olabilir. (Dezavantajı, artık Python ve diğer kitaplıklarının birden fazla sürümünü hedefleme konusunda endişelenmeniz gerektiğidir).

Nuitka ve Cython (sınırlı deneyimimde) oldukça iyi çalışıyor gibi görünüyor. Kapsamlı bir şekilde test etmediğimi de söyleyerek ana gözlemim, exe üretmek için çok uzun bir iş gibi görünüyor.


Tüm bunları söyledikten sonra, Python programınızı yürütülebilir bir öğeye dönüştürmek, kodunuzu dağıtmanın tek yolu olmadığını hatırlatalım. Diğer seçeneklerin nasıl kullanılabilir olduğu hakkında daha fazla bilgi edinmek için aşağıdaki bağlantılara bakın:

Bu yazı topluluk tarafından oluşturuldu. Lisans bilgisine bakabilirsiniz. Yanlış veya eksik bilgileri düzenlemek için github üzerinden katkıda bulunabilirsiniz.

Kategoriler: Yazı, Python

Okumaya devam et!

Python dilim notasyonunu anlama

Dilim notasyonu aslında oldukça basit: Yukarıdakilerden herhangi biriyle kullanılabilecek diğer bir değer de adim: Hatırlanması gereken önemli bir nokta son değerinin dilimde olmayan ilk değeri temsil etmesi.

Python’da dosya kopyalama nasıl yapılır?

Python’da dosya kopyalamak için birden fazla yöntem kullanabiliriz.

Pythonda dist-paketleri ile site-paketleri arasındaki fark nedir?

Dist paketleri dizinine yüklenen paketler ile site paketleri dizini arasındaki fark nedir? dist-packages Debian’a özgü bir düzendedir, Ubuntu gibi Debian türevlerinde de bulunur.

Python101 – Sözlükler

Bu bölüm sözlükler hakkında.

Yorum Gönderin

E-posta hesabınız yayımlanmayacak.

koddla
Tema Mundana by WowThemes.net.