Jak skompilować moją aplikację Python 3 do.exe? [zamknięte]

Jak przekonwertować aplikację Pythona na .exe? Stworzyłem program z tkinter i zastanawiałem się, jak sprawić, by inni mogli go używać. Używam Pythona 3.3. Szukałem trochę, ale nie mogłem znaleźć nic.

Author: Machavity, 2013-07-28

4 answers

Cx_Freeze robi to, ale tworzy folder z wieloma zależnościami. py2exe teraz robi to i, z opcją --bundle-files 0, tworzy tylko jeden EXE, który jest prawdopodobnie najlepszym rozwiązaniem na twoje pytanie.

Aktualizacja: po napotkaniu zewnętrznych modułów, które py2exe miał problemy z "znalezieniem", przeniosłem się do pyinstaller, jak sugeruje poniżej kotlet schabowy. Oba mają obszerną dokumentację i obejmują .exes można uruchomić z parametrami wiersza poleceń, ale muszę jeszcze skompilować skrypt, którego pyinstaller nie jest w stanie obsłużyć bez debugowania lub drapania głowy.

Oto prosta funkcja wygody, której używam do budowania .exe z moim domyślnym interpreterem (oczywiście wsad lub podobny też byłby w porządku):

import subprocess,os
def exe(pyfile,dest="",creator=r"C:\Python34\Scripts\pyinstaller.exe",ico=r"C:\my icons\favicon.ico",noconsole=False):
    insert=""
    if dest: insert+='--distpath ""'.format(dest)
    else: insert+='--distpath "" '.format(os.path.split(pyfile)[0])
    if ico: insert+=' --icon="{}" '.format(ico)
    if noconsole: insert+=' --noconsole '
    runstring='"{creator}" "{pyfile}" {insert} -F'.format(**locals())
    subprocess.check_output(runstring)
 13
Author: fearwig,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-05 23:08:52

Znalazłem PyInstaller aby działać najlepiej. Masz wiele opcji, na przykład możesz spakować wszystko do jednego pliku exe.

Uwielbiam używać go razem z Cython {[2] } dla szybkości.

 7
Author: kotlet schabowy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-18 11:23:44

Możesz użyć cx_Freeze . Jest tu przewodnik .

 4
Author: Andy G,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-28 10:36:54

Użyj Pyinstaller . Po zainstalowaniu programu otwórz terminal w katalogu, w którym znajduje się projekt.

  1. $ pyinstaller script1.py script2.py ... (gdzie script1, script2, itd. są wszystkie skrypty używane w projekcie.)

  2. Po wykonaniu polecenia Otwórz folder dist i wprowadź podkatalog. Tam znajdziesz plik wykonywalny.

Mam nadzieję, że to pomoże.
 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-12 17:58:35