Python için bir .py dosyasını .exe'ye nasıl dönüştürebilirim?


126

Oldukça basit bir Python programını çalıştırılabilir bir programa dönüştürmeye çalışıyorum ve aradığımı bulamadım, bu yüzden birkaç sorum var (Python 3.6 çalıştırıyorum):

Şimdiye kadar bulduğum bunu yapma yöntemleri aşağıdaki gibidir

  1. Python'un eski bir sürümünü indirmek ve kullanmak pyinstaller/py2exe
  2. Python 3.6'da yapmama izin verecek bir sanal ortam kurmak 1.
  3. Python'dan C ++ 'ya dönüştürücü indirip bunu kullanarak.

İşte denediğim / karşılaştığım sorunlar.

  • Ben yüklü pyinstallero (pypi şey) o iş olmadı bu yüzden önce gerekli İndirme işlemi öncesi. Önkoşul dosyasını indirdikten sonra pyinstallerhala tanımıyor.
  • Python 2.7'de bir virtualenv kuruyorsam, aslında Python 2.7'nin kurulu olması gerekir mi?
  • benzer şekilde, gördüğüm tek python'dan C ++ dönüştürücülere kadar yalnızca Python 3.5'e kadar çalışıyor - bunu deniyorsam bu sürümü indirip kullanmam gerekir mi?

4
Bunun neden reddedildiğinden emin değilim (belki de araç önerileri SO için konu dışı olduğundan), ancak bu soru gelecekte diğerleri için faydalı olacaktır. Önceki benzer sorular konu dışı olarak işaretlenmemiştir, örneğin stackoverflow.com/questions/2136837/…
Chris_Rands

Yanıtlar:


127

Python 3.6'da .py'yi .exe'ye dönüştürme adımları

  1. Python 3.6'yı yükleyin .
  2. Cx_Freeze'i kurun, (komut isteminizi açın ve yazın pip install cx_Freeze.
  3. İdna'yı yükleyin, (komut isteminizi açın ve yazın pip install idna .
  4. .pyAdlı bir program yazınmyfirstprog.py .
  5. Adlı yeni bir python dosyası oluşturun setup.pyKomut dosyanızın geçerli dizininde .
  6. İçinde setup.py dosya altında ve bunun tasarrufu kodu kopyalayın.
  7. Shift tuşuna basılarak aynı dizine sağ tıklayın, böylece bir komut istemi penceresi açabilirsiniz.
  8. Komut istemine yazın python setup.py build
  9. Komut dosyanız hatasız ise, uygulama oluşturmada herhangi bir sorun olmayacaktır.
  10. Yeni oluşturulan klasörü kontrol edin build. İçinde başka bir klasör var. Bu klasörde uygulamanızı bulabilirsiniz. Çalıştırın. Kendini mutlu et.

Blogumdaki orijinal komut dosyasına bakın .

setup.py:

from cx_Freeze import setup, Executable

base = None    

executables = [Executable("myfirstprog.py", base=base)]

packages = ["idna"]
options = {
    'build_exe': {    
        'packages':packages,
    },    
}

setup(
    name = "<any name>",
    options = options,
    version = "<any number>",
    description = '<any description>',
    executables = executables
)

DÜZENLE:

  • uzantı dosya adınızı 4. adımda oluşturduğunuz gibi myfirstprog.pykoymanız gerektiğinden emin olun ;.py
  • Her içermelidir importsizin de ed paketi .pyiçine packageslistesinde (ex: packages = ["idna", "os","sys"])
  • any name, any number, any descriptioniçinde setup.pydosyanın buna göre değiştirmek gerekir, (örn: aynı kalmamalıdır name = "<first_ever>", version = "0.11", description = '')
  • importBaşlamadan önce ed paketleri yüklü olmalıdır adımı 8 .

10
"Bağımsız" çalıştırılabilir hale getirmenin bir yolu var mı? Makalenizde tavsiye ettiğiniz şekilde devam edersem, exe.win.32-3.6 klasörüne ulaşırım. Destekleyici dosya ve dizinlerle dolu olan ("koleksiyonlar /", "e-posta" vb.). Basit bir baskı için çok fazla ('merhaba'). Başka bir bilgisayarda başka dosyalara ihtiyaç duymadan olduğu gibi çalışacak tek bir yürütülebilir dosya yapmak istiyorum. Bunun için bir inşa seçeneği var mı?
FanaticD


2
@FanaticD Python en iyi seçeneğiniz değil. Cython (çalışmaya başlamak için bir kabus) veya Nuitka en iyi seçeneğiniz olacaktır. Ancak çalışanların çalışmasını sağlamak başlı başına bir başarıdır.
Tetora

Bu Python 3.5.3'te çalışır mı? (Debian 9 Stretch'teki son kararlı sürüm).
Gerard

Nasıl içe aktarırım from sklearn.externals import joblib? düzenlemede bahsedildiği gibi 2. adım
Jack

77

Python 3.6, PyInstaller tarafından desteklenir.

Python klasörünüzde bir cmd penceresi açın (bir komut penceresi açın ve cdshift tuşunu kullanın veya tuşunu basılı tutarken Windows Gezgini'nde sağ tıklayın ve 'Komut penceresini burada aç'ı seçin). O zaman sadece girin

pip install pyinstaller

Ve bu kadar.

Kullanmanın en basit yolu, komut isteminize girmektir.

pyinstaller file_name.py

Nasıl kullanılacağı hakkında daha fazla ayrıntı için bu soruya bir göz atın .


4
az önce python 3.7.0 ile test edildi. Yine de bir çok uyarı, ancak başarıyla derlendi ve Windows 10'da çalışıyor
Ole_S

2
Python 3.5.0 içeren ve hiçbir uyarı veya hata
içermeyen

Bir Pyinstaller'da neyin önemli olduğunu bilen var mı? Windows 10 üzerindeki bir exe, Windows 8'de çalışacak mı? yoksa windows 10 32bit build windows 10 64 bit sistemlerde çalışacak mı?
Derik81

27

GitHub'da auto-py-to-exe adlı açık kaynaklı bir proje var . Aslında sadece dahili olarak PyInstaller kullanır, ancak PyInstaller'ı kontrol eden basit bir GUI'ye sahip olduğu için rahat bir alternatif olabilir. Diğer çözümlerin aksine bağımsız bir dosya da çıkarabilir. Ayrıca nasıl kurulacağını gösteren bir video sağlarlar .

GUI:

Auto Py'den Exe'ye

Çıktı:

Çıktı


2
MVC ++ gerektirdiğini söylemeliydiniz. hata: Microsoft Visual C ++ 14.0 gerekli.
SKR

3
Pyinstaller üzerine kurulu olduğu için bunda herhangi bir değer bulamıyorum ve eğer pyinstaller'da bir hata alırsanız, onu burada da göreceksiniz!
CV_passionate

9

Size en iyisini söyleyemem, ancak geçmişte başarıyla kullandığım bir araç cx_Freeze idi . Kısa süre önce (7 Ocak '17'de) 5.0.1 sürümüne güncellediler ve Python 3.6'yı destekliyorlar.

İşte pypi https://pypi.python.org/pypi/cx_Freeze

Belgeler, ihtiyaçlarınıza bağlı olarak bunu yapmanın birden fazla yolu olduğunu gösterir. http://cx-freeze.readthedocs.io/en/latest/overview.html

Henüz denemedim, bu yüzden yapmanın basit yolunun tartışıldığı bir gönderiye işaret edeceğim. Yine de bazı şeyler değişmiş olabilir veya olmayabilir.

Cx_freeze'i nasıl kullanırım?


11
Bahsetmeye değer, cxFreeze tek dosyalı çalıştırılabilir dosyalar yapmaz.
Eddie Hart

7

Nuitka ve PyInstaller'ı paketim PySimpleGUI ile kullanıyorum.

Nuitka ile derlemede sorunlar oluştu. Projeye katkıda bulunanlardan biri sorunu çözen bir komut dosyası geliştirdi.

Tkinter kullanmıyorsanız, sizin için "sadece işe yarayabilir". Eğer tkinter kullanıyorsanız bunu söyleyin ve ben senaryoyu ve talimatları yayınlamaya çalışacağım.

PyInstaller 3.6 çalıştırıyorum ve PyInstaller harika çalışıyor! Exe dosyamı oluşturmak için kullandığım komut:

pyinstaller -wF myfile.py

-WF, tek bir EXE dosyası oluşturacaktır. Tüm programlarımın bir GUI'si olduğundan ve komut penceresinin gösterilmesini istemediğim için, -w seçeneği komut penceresini gizleyecektir.

Bu neye benzediğini anlamaya çok yakın Python'da yazılmış bir Winforms programının çalıştırılmasına bir program .

[20 Temmuz 2019 Güncellemesi]

PyInstaller kullanan PySimpleGUI GUI tabanlı bir çözüm var. PySimpleGUI kullanır. Pysimplegui-exemaker olarak adlandırılır ve pip ile kurulabilir.

pip install PySimpleGUI-exemaker

Kurduktan sonra çalıştırmak için:

python -m pysimplegui-exemaker.pysimplegui-exemaker


5

Şimdi PyInstaller kullanarak bunu dönüştürebilirsiniz. Python 3 ile bile çalışıyorum.

Adımlar:

  1. PC'nizi çalıştırın
  2. Komut istemini aç
  3. Komut girin pip install pyinstaller
  4. Kurulduğunda, çalışma dizinine gitmek için 'cd' komutunu kullanın.
  5. Komut çalıştır pyinstall <filename>

İnsanlar neden buna olumsuz oy veriyor? Bu cevabı sadece yardım etmek için gönderiyorum.
Tejas Joshi

3
çünkü OP'nin özellikle kullandığı Python 3.6 üzerinde çalışmıyor.
uri

Pyinstaller şimdi çalışmalı.
Olmazsa
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.