Python ile Self-Contained Uygulama Üretme
Python programlama dili, python yorumlayıcısı (interpreter) üzerinde programlama yapmayı sağlayan bir dildir. Python ile geliştirilen uygulamaların dağıtımı içinse kurulacak makinede halihazırda yüklü bir python yorumlayıcısının olması beklenir. Yani kod çalıştırılmadan önce çalışma zamanı ortamını (runtime environment) doğru bir şekilde ayarlamak gerekir.
Runtime ayarlamaları sırasında pek çok problem meydana gelebilir; hedef sistemlerde farklı işletim sistemleri ve farklı versiyonlar olacağı için python uygulamalarının konteyner içerisine alınması yaygın kullanılan bir yöntemdir.
Bu yazıda anlatmak istediğim şey ise biraz daha farklı bir yaklaşım. Python uygulamalarını pyinstaller
aracı sayesinde derleyip kendi başına (standalone) çalışabilir bir dosya haline getirmek konusundan bahsedeceğim. Böylelikle oluşturuacağımız çalıştırılabilir dosya (executable file) derlendiği makineye benzer işletim sistemine sahip hedef cihazlarda da çalışabilir hale gelecek ve python yorumlayıcısını kendi içerisinde barındıracaktır.
İlk olarak pyinstaller
aracını kurmamız gerekli bunun için aşağıdaki komutu çalıştırabilirsiniz.
pip3 install pyinstaller
Bu yöntem yazdığınız kod ile birlikte gerekli olan yorumlayıcı ve ek kütüphaneleri tek bir dosya içinde toplayacağı için oluşturulacak dosya boyutu artacaktır. Bunu optimize etmek adına upx
isimli boyut optimizasyon aracını kullanacağız. Kurabilmek için bu komutu çalıştırmamız gerek
sudo apt-get install upx
Gerekli olan paketleri kurduktan sonra aşağıdaki komutu çalıştırarak main.py
dosyamızdan çalıştırılabilir bir dosya elde etmiş oluyoruz.
pyinstaller \
--onefile \
--noconfirm \
--clean \
--log-level=WARN \
--key=@!GizliParolaKoyarsakGuvenliOlur12345!@ \
--strip \
main.py