SORU
13 EKİM 2009, Salı


Nasıl python programları dağıtabilirsiniz?

Benim uygulama bu gibi görünüyor:

main.py
windows/
    __init__.py
    mainwindow.py
    ...
model/
    __init__.py
    orders.py
    ...
resources/
    image1.png
    logo.jpg
    ...

Program main.py ile başladı. Orada bir oluşturmak için iyi bir yoldur 'son' bunun dışında bir uygulama? Bir şey py2exe/py2app, ama bir tek bir yürütülebilir bulunduğu uygulamasına modülleri / python yorumlayıcısı olmadan kopyalama gibi düşünüyorum.

Distutils bir göz attım, ama bu non-linux platformlarda pek olağan bir şey değildir Python dizinine bir program yükler gibi görünüyor.

Ben sadece kopyala anda tüm bu Kaynak, Hedef makine üzerine klasör ve windows main.pyw için bir takma ad oluşturun. Bazı rahatsızlıklar:

  • Simge varsayılan python simgedir.
  • Diğer el ile oluşturmak için var.
  • Benim kaynak dizin içinde kaynak denetimi klasörü gibi ek dosyalar var.
  • main.pyw main.py yeniden adlandırmak için el var.
  • Güzel, eğer sadece `olurdu.pyo* dosyaları hedef makinede. Bunun için gerçek bir sebep yok hayır, sadece gereksiz dosyaları sevmiyorum.

Ne kadar güzel bir otomatik bir dağıtım oluşturur?

  • windows? (Şu anda destek için tek platform.)
  • mac için?
  • linux için?

CEVAP
13 EKİM 2009, Salı


Ben çok tüm büyük platformlar oldukça sorunsuz destekler Pyinstaller, tavsiye ederim. Gibi py2exe ve py2app, ürettiği bir standart yürütülebilir Windows ve uygulaması bundle OS X, ama yararı da yaparak harika bir iş otomatik çözme ortak bağımlılıkları ve onlara dahil olmadan ekstra yapılandırma düzenlemeler.

Ayrıca eğer Windows için Python 2.6 dağıtımı, this patch gövde Pyinstaller başvuru yapmanız gerektiğini unutmayın.

Bir yükleyici ihtiyacın olmadığını belirtmekle birlikte, Inno Setup kullanımı kolay ve Windows için seçimi kurulum için hızlı bir platform.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bashirsultani

    bashirsultan

    22 Mart 2010
  • bmarian22

    bmarian22

    22 Aralık 2007
  • Elliot Davin

    Elliot Davin

    28 Kasım 2008