PyOxidizer, Python projelerini yürütülebilir dosyalara paketlemek için bir yardımcı program

PyOksitleyici

Birkaç gün önce geliştiriciler PyOxidizer yardımcı programının ilk sürümünü tanıttıolarak sunulan Bir Python projesini ayrı bir yürütülebilir dosya olarak paketlemek için kullanılabilen bir yardımcı programPython yorumlayıcısı ve gerekli tüm kitaplıklar ve kaynaklar dahil.

Bu tür dosyalar, Python araç seti yüklü olmayan ortamlarda veya gerekli Python sürümünün mevcudiyetine bakılmaksızın çalıştırılabilir.

PyOxidizer, sistem kitaplıklarıyla ilişkili olmayan statik olarak ilişkili yürütülebilir dosyalar da oluşturabilir. Proje kodu Rust dilinde yazılmıştır ve MPL (Mozilla Public License) 2.0 altında dağıtılmaktadır.

PyOxidizer hakkında?

proje Rust programlarına bir Python yorumlayıcısı yerleştirmenize olanak tanıyan Rust dili için aynı adı taşıyan modülü temel alır üzerlerinde Python betikleri çalıştırmak için.

PyOksitleyici şimdi Rust için eklentinin ötesine geçti ve bağımsız Python paketleri oluşturmak ve dağıtmak için daha geniş bir kitleye sunulan bir araç olarak konumlandırıldı.

PyOxidizer, Python uygulamalarının nasıl dağıtılacağı sorununu çözmeyi amaçlayan bir yardımcı programdır.

Uygulamaları yürütülebilir bir dosya biçiminde dağıtması gerekmeyenler için, PyOxidizer, Python yorumlayıcısını ve bunlara gerekli uzantı kümesini yerleştirmek için herhangi bir uygulamaya bağlanmak üzere uygun kitaplıklar oluşturma fırsatları sunar.

Russel Keith-Magee, Python için kod dağıtımını uzun ömürlülüğe varoluşsal bir tehdit olarak tanımladığından, Python uygulama dağıtımı genellikle çözülmemiş bir sorun olarak kabul edilir. Onun sözleriyle Python, kodumu başka birine nasıl verdiğim konusunda tutarlı bir geçmişe sahip olmamıştır, özellikle de o kişi bir geliştirici değilse ve sadece uygulamamı kullanmak istiyorsa.

Son kullanıcılar için, tek bir yürütülebilir dosya biçiminde bir proje teslim etmek Kurulumu büyük ölçüde basitleştirir ve örneğin video düzenleyicileri gibi karmaşık Python projeleri için önemli olan bağımlılık seçme işini ortadan kaldırır.

Öte yandan Uygulama geliştiricileri için PyOxidizer, bir uygulamanın teslimatını organize ederken zamandan tasarruf etmelerini sağlar farklı işletim sistemleri için paketler oluşturmak üzere farklı araçlar kullanmak zorunda kalmadan.

PyOxidizer nasıl çalışır?

Önerilen yapıları kullanma performans üzerinde de olumlu bir etkisi vardır: PyOxidizer'da oluşturulan dosyalar, içe aktarmaları kaldırarak ve temel modülleri tanımlayarak Python sistemini kullanmaktan daha hızlı çalışır.

PyOxidizer'da, modüller bellekten içe aktarılır (Tüm yerleşik modüller hemen belleğe yüklenir ve ardından disk erişimi olmadan kullanılır). Testte, PyOxidizer ile uygulama başlatma süresi kabaca yarı yarıya azaldı.

Mevcut benzer projelerden şunları gözlemlemek mümkündür: PyInstaller (dosyayı geçici bir dizine çıkarır ve modülleri buradan içe aktarır).

  • Py2exe (Windows platformuna bağlıdır ve birden fazla dosya dağıtımı gerektirir), py2app (macOS ile bağlantılı)
  • Cx-freeze (ayrı bir bağımlılık paketi gerektirir), Shiv ve PEX (bir zip paketi oluşturur ve sistemde Python gerektirir)
  • Nuitka (gömülü yorumlayıcıyı değil kodu derler), pynsist (Windows ile bağlantılı), PyRun (çalışma prensiplerinin açıklaması olmadan tescilli geliştirme).

Mevcut geliştirme aşamasında, PyOxidizer, Windows, macOS ve Linux için yürütülebilir dosyalar oluşturmak için ana işlevselliği zaten uygulamıştır.

Kapsamlı yetenekler arasında, standart bir derleme ortamının olmaması, MSI, DMG ve deb / rpm formatında bir paket üretememe ve C diline yönelik karmaşık uzantıları içeren proje paketleme sorunları olduğu belirtildi.

Sürümü destekleyecek talimatların olmaması ("pyoxidizer add", "pyoxidizer analizi" ve "pyoxidizer yükseltmesi") ve Terminfo ve Readline için sınırlı destek, Python 3.7 dışındaki sürümler için destek eksikliği, kaynak sıkıştırması için destek eksikliği, çapraz derleme yetersizliği.

kaynak: https://pyoxidizer.readthedocs.io


İlk yorumu siz

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.