Kompilieren eines einfachen Skriptes mit auto-py-to-exe

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
maow
User
Beiträge: 29
Registriert: Mittwoch 24. Februar 2016, 16:30

Hey ich verzweifel gerade,

früher ging das problemlos, doch jetzt bekomme ich nur noch Fehler wenn ich folgenden Code mittels auto-py-to-exe kompiliere. Habe es nun schon auf drei verschiedenen Systemen ausprobiert, immer das gleiche Ergebnis :(

import shutil
import os
from pathlib import Path


print("\n\n")
print("Erstellung eines neuen Projektordners\n")
print("Info: Das Programm erstellt auf Basis der Eingabe sowie der im Projektordner \nhinterlegten Ordnerstruktur für das Jahr 2022 einen neuen Projektordner.\n")
userinput_projektnummer=input("Bitte genaue Projektnummer eingeben (z.B. 22DU09999): ")
if "DU000" in userinput_projektnummer:
add="22DU00000"
elif "DU001" in userinput_projektnummer:
add="22DU00100"
elif "DU002" in userinput_projektnummer:
add="22DU00200"
elif "DU003" in userinput_projektnummer:
add="22DU00300"
elif "DU004" in userinput_projektnummer:
add="22DU00400"
elif "DU005" in userinput_projektnummer:
add="22DU00500"
elif "DU006" in userinput_projektnummer:
add="22DU00600"
elif "DU007" in userinput_projektnummer:
add="22DU00700"
elif "DU008" in userinput_projektnummer:
add="22DU00800"
elif "DU009" in userinput_projektnummer:
add="22DU00900"
elif "DU010" in userinput_projektnummer:
add="22DU01000"

print("\n")
userinput_bezeichnung=input("Bitte (sofern gewünscht) eine Projektbezeichnung eingeben : \n")
neuerordner=str(userinput_projektnummer)+" "+str(userinput_bezeichnung)



newpath_00 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/00_Projektmanagement")
newpath_01 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/01_Vertragswesen")
newpath_011 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/01_Vertragswesen/01 Anfragen Angebote")
newpath_012 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/01_Vertragswesen/02 Auftrag Rechnungen")
newpath_013 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/01_Vertragswesen/03 Anfragen Angebute NU")
newpath_014 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/01_Vertragswesen/04 Auftrag Rechnungen NU")
newpath_02 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/02_Schriftverkehr")
newpath_021 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/02_Schriftverkehr/01_Briefe")
newpath_022 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/02_Schriftverkehr/02_E-Mails")
newpath_023 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/02_Schriftverkehr/03_Notizen")
newpath_024 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/02_Schriftverkehr/04_Protokolle")
newpath_03 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/03_Pläne und Unterlagen")
newpath_031 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/03_Pläne und Unterlagen/01_Terminplanung")
newpath_032 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/03_Pläne und Unterlagen/02_Unterlagen Planeingang extern")
newpath_033 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/03_Pläne und Unterlagen/03_Planentwürfe")
newpath_034 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/03_Pläne und Unterlagen/04_Unterlagen Planausgang")
newpath_035 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/03_Pläne und Unterlagen/05_Qualitätsmanagement")
newpath_036 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/03_Pläne und Unterlagen/06_Plangrundlagen CAD")
newpath_04 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/04_Feldarbeiten und Labor")
newpath_041 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/04_Feldarbeiten und Labor/01 Feldprotokolle")
newpath_042 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/04_Feldarbeiten und Labor/02 Laborversuche")
newpath_043 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/04_Feldarbeiten und Labor/03 Analytik")
newpath_05 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/05_Bilder")
newpath_06 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/06_Arbeitsunterlagen")
newpath_061 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/06_Arbeitsunterlagen/01_Unterlagen AG")
newpath_062 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/06_Arbeitsunterlagen/02_Literatur")
newpath_063 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/06_Arbeitsunterlagen/03_Auswertungen_Berechnungen")
newpath_07 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/07_Berichte")
newpath_071 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/07_Berichte/01 Entwürfe")
newpath_072 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/07_Berichte/02 Final")
newpath_08 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/08_LV")
newpath_09 = Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/09_Bauüberwachung")

newpath_00.mkdir(parents=True, exist_ok=False)
newpath_01.mkdir(parents=True, exist_ok=False)
newpath_011.mkdir(parents=True, exist_ok=False)
newpath_012.mkdir(parents=True, exist_ok=False)
newpath_013.mkdir(parents=True, exist_ok=False)
newpath_014.mkdir(parents=True, exist_ok=False)
newpath_02.mkdir(parents=True, exist_ok=False)
newpath_021.mkdir(parents=True, exist_ok=False)
newpath_022.mkdir(parents=True, exist_ok=False)
newpath_023.mkdir(parents=True, exist_ok=False)
newpath_024.mkdir(parents=True, exist_ok=False)
newpath_03.mkdir(parents=True, exist_ok=False)
newpath_031.mkdir(parents=True, exist_ok=False)
newpath_032.mkdir(parents=True, exist_ok=False)
newpath_033.mkdir(parents=True, exist_ok=False)
newpath_034.mkdir(parents=True, exist_ok=False)
newpath_035.mkdir(parents=True, exist_ok=False)
newpath_036.mkdir(parents=True, exist_ok=False)
newpath_04.mkdir(parents=True, exist_ok=False)
newpath_041.mkdir(parents=True, exist_ok=False)
newpath_042.mkdir(parents=True, exist_ok=False)
newpath_043.mkdir(parents=True, exist_ok=False)
newpath_05.mkdir(parents=True, exist_ok=False)
newpath_06.mkdir(parents=True, exist_ok=False)
newpath_07.mkdir(parents=True, exist_ok=False)
newpath_071.mkdir(parents=True, exist_ok=False)
newpath_072.mkdir(parents=True, exist_ok=False)
newpath_08.mkdir(parents=True, exist_ok=False)
newpath_09.mkdir(parents=True, exist_ok=False)

root_path_file1 = r"G:/Projekte/xxDUxxxxx_x_Vorlage neuer Projektordner/00_Projektmanagement/FBAA15B_Checkliste_.pdf"
root_path_file2 = r"G:/Projekte/xxDUxxxxx_x_Vorlage neuer Projektordner/00_Projektmanagement/F1C_Projektverfolgung.pdf"
root_path_file3 = r"G:/Projekte/xxDUxxxxx_x_Vorlage neuer Projektordner/00_Projektmanagement/FD_ProjektverfolgungII.pdf"
root_path_file4 = r"G:/Projekte/xxDUxxxxx_x_Vorlage neuer Projektordner/00_Projektmanagement/VA_Projektverfolgung.pdf"
shutil.copy2(root_path_file1,newpath_00)
shutil.copy2(root_path_file2,newpath_00)
shutil.copy2(root_path_file3,newpath_00)
shutil.copy2(root_path_file4,newpath_00)







''#######################################
#######################################

Ausgabe von auto-py-to-exe:


Running auto-py-to-exe v2.15.0
Building directory: C:\Users\Oz\AppData\Local\Temp\tmp0w3w84lx
Provided command: pyinstaller --noconfirm --onefile --console "C:/Users/Oz/Downloads/copy.py"
Recursion Limit is set to 5000
Executing: pyinstaller --noconfirm --onefile --console C:/Users/Oz/Downloads/copy.py --distpath C:\Users\Oz\AppData\Local\Temp\tmp0w3w84lx\application --workpath C:\Users\Oz\AppData\Local\Temp\tmp0w3w84lx\build --specpath C:\Users\Oz\AppData\Local\Temp\tmp0w3w84lx

31472 INFO: PyInstaller: 4.8
31480 INFO: Python: 3.10.2
31507 INFO: Platform: Windows-10-10.0.19043-SP0
31525 INFO: wrote C:\Users\Oz\AppData\Local\Temp\tmp0w3w84lx\copy.spec
31528 INFO: UPX is not available.
31531 INFO: Extending PYTHONPATH with paths
['C:\\Users\\Oz\\Downloads']
An error occurred while packaging
Traceback (most recent call last):
File "C:\Python310\lib\site-packages\auto_py_to_exe\packaging.py", line 131, in package
run_pyinstaller()
File "C:\Python310\lib\site-packages\PyInstaller\__main__.py", line 124, in run
run_build(pyi_config, spec_file, **vars(args))
File "C:\Python310\lib\site-packages\PyInstaller\__main__.py", line 58, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
File "C:\Python310\lib\site-packages\PyInstaller\building\build_main.py", line 793, in main
build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
File "C:\Python310\lib\site-packages\PyInstaller\building\build_main.py", line 725, in build
exec(code, spec_namespace)
File "C:\Users\Oz\AppData\Local\Temp\tmp0w3w84lx\copy.spec", line 7, in <module>
a = Analysis(['C:/Users/Oz/Downloads/copy.py'],
File "C:\Python310\lib\site-packages\PyInstaller\building\build_main.py", line 245, in __init__
self.hookspath += discover_hook_directories()
File "C:\Python310\lib\site-packages\PyInstaller\building\build_main.py", line 102, in discover_hook_directories
output = exec_statement(
File "C:\Python310\lib\site-packages\PyInstaller\utils\hooks\__init__.py", line 91, in exec_statement
return __exec_statement(statement, capture_stdout=True)
File "C:\Python310\lib\site-packages\PyInstaller\utils\hooks\__init__.py", line 75, in __exec_statement
return __exec_python_cmd(cmd, capture_stdout=capture_stdout)
File "C:\Python310\lib\site-packages\PyInstaller\utils\hooks\__init__.py", line 66, in __exec_python_cmd
txt = compat.exec_python(*cmd, env=pp_env)
File "C:\Python310\lib\site-packages\PyInstaller\compat.py", line 546, in exec_python
return exec_command(*cmdargs, **kwargs)
File "C:\Python310\lib\site-packages\PyInstaller\compat.py", line 332, in exec_command
out = proc.communicate(timeout=60)[0]
File "C:\Python310\lib\subprocess.py", line 1149, in communicate
stdout, stderr = self._communicate(input, endtime, timeout)
File "C:\Python310\lib\subprocess.py", line 1525, in _communicate
raise TimeoutExpired(self.args, orig_timeout)
subprocess.TimeoutExpired: Command '('C:\\Python310\\python.exe', '-c', '\nimport sys\nimport pkg_resources\n\nentry_points = pkg_resources.iter_entry_points(\'pyinstaller40\', \'hook-dirs\')\nfor entry_point in entry_points:\n try:\n hook_dirs = entry_point.load()()\n for hook_dir in hook_dirs:\n print(\'\\n$_pyi:\' + hook_dir + \'*\')\n except Exception as e:\n print("discover_hook_directories: Failed to process hook entry point \'%s\': %s" %\n (entry_point, e), file=sys.stderr)\n')' timed out after 60 seconds

Project output will not be moved to output folder
Complete.

Weiß jemand einen Rat ? Bin leider Anfänger :(
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@maow: Ging das früher auch unter Python 3.10 problemlos? Wäre mein erster Versuch mal eine Versionsnummer runter zu gehen. Oder auch zwei, beziehungsweise mit einer Version probieren mit der es mal funktioniert hat.

Edit: Das ist übrigens ziemlich gruseliger Code wo viele Daten als Code drin stehen und wenn man `Path` ”benutzt” gibt es keine Entschuldigung für so etwas wie ``Path("G:/Projekte/22/"+str(add)+"/"+str(neuerordner)+"/00_Projektmanagement")``. Das ist falsch, weil fehlerhaft, und ziemlich pervers obendrein.

Edit 2: Und ich sehe gerade das wohl keiner der unzähligen `str()`-Aufrufe tatsächlich Sinn macht, weil die immer nur auf Zeichenketten angewendet werden. Warum nur!!!1!elf!
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
maow
User
Beiträge: 29
Registriert: Mittwoch 24. Februar 2016, 16:30

Warum nur? Weil ich schrieb das ich ein Anfänger bin.
Ich weiß nicht was ich an dem Code besser machen könnte. Der Code ist dazu da eine gewisse Ordnerstruktur auch genau so abzubilden. Das mit dem str().. ja gut.. wollte einfach nur sichergehen das der das auch in einem string umwandelt. Ich bin Anfänger wie gesagt und werd immer einer bleiben :). Dafür macht das Programm aber genau das, was es soll.

Wie downgrade ich mein python ? Muss ich dazu einfach deinstallieren ? Ah.. ich googel erstmal :)Danke soweit für den Tip; werde es mal ausprobieren.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@maow: Zeichenketten immer noch mal in Zeichenketten umwandeln zu wollen, sollte auch ein Anfänger nicht machen, insbesondere wenn er das nur macht um sicher zu gehen.

Das gleiche gilt für kopierten Code mit Daten drin anstelle von Schleifen. Das ist was was IMHO noch Prä-Anfänger ist, also in dem Stadium wo man wirklich gerade die Grundlagen durcharbeitet. Wenn man das Thema Schleifen durch hatte, sollte man solchen Code nicht mehr schreiben, auch als Anfänger nicht.

Und ob der Code das macht was er soll kommt unter anderem auch darauf an ob da bei dem Zeichenkettenzusammenstückeln von Pfadteilen die der Benutzer eingegeben hat, irgendwann nicht doch mal was dabei ist, was eben nicht das gewünschte Ergebnis zur Folge hat.

Konkretere Anmerkungen zum Quelltext: `os` wird importiert aber nicht verwendet.

Der Wert für `add` hängt recht offensichtlich mit dem Wert zusammen der in der Projektnummer gesucht wird, und beide Werte haben ein sehr auffälliges Muster, da braucht es also diese ganzen ``if``/``elif``-Zweige nicht. Und falls keiner der Werte in Projektnummer gefunden wird, bricht das Programm später unweigerlich mit einem `NameError` ab, weil `add` dann undefiniert ist.

`add` ist ein komischer Name, da sollte etwas hin was die Bedeutung dieses Verzeichnisnamens vermittelt.

Ich habe den Code mal durch eine Schleife ersetzt, obwohl das vielleicht eher ein Fall für etwas mit regulären Ausdrücken ist.

Wenn keine Projektbezeichnung eingegeben wird, dann ist da an `neuerordner` ein Leerzeichen am Ende — soll das so?

Da `mkdir()` so aufgerufen wird, dass nicht vorhandene Elternpfade mit angelegt werden, sind ein paar Pfade überflüssig, weil die redundant angegeben sind. Ich habe sie trotzdem mal drin gelassen.

Ungetestet:

Code: Alles auswählen

#!/usr/bin/env python3
import shutil
from pathlib import Path


def main():
    print("\n\nErstellung eines neuen Projektordners\n")
    print(
        "Info: Das Programm erstellt auf Basis der Eingabe sowie der im"
        " Projektordner\n"
        "hinterlegten Ordnerstruktur für das Jahr 2022 einen neuen"
        " Projektordner.\n"
    )
    projektnummer = input(
        "Bitte genaue Projektnummer eingeben (z.B. 22DU09999): "
    )
    for number in range(11):
        search_term = f"DU{number:03d}"
        if search_term in projektnummer:
            add = f"22{search_term}00"
            break
    else:
        print(
            "Projektnummer muss einen Teil aus dem Bereich 'DU000'..'DU010'"
            "enthalten."
        )
        return

    projektbezeichnung = input(
        "\nBitte (sofern gewünscht) eine Projektbezeichnung eingeben:\n"
    )

    new_project_path = (
        Path("G:/Projekte/22") / add / f"{projektnummer} {projektbezeichnung}"
    )
    for sub_path in [
        "00_Projektmanagement",
        "01_Vertragswesen",
        "01_Vertragswesen/01 Anfragen Angebote",
        "01_Vertragswesen/02 Auftrag Rechnungen",
        "01_Vertragswesen/03 Anfragen Angebute NU",
        "01_Vertragswesen/04 Auftrag Rechnungen NU",
        "02_Schriftverkehr",
        "02_Schriftverkehr/01_Briefe",
        "02_Schriftverkehr/02_E-Mails",
        "02_Schriftverkehr/03_Notizen",
        "02_Schriftverkehr/04_Protokolle",
        "03_Pläne und Unterlagen",
        "03_Pläne und Unterlagen/01_Terminplanung",
        "03_Pläne und Unterlagen/02_Unterlagen Planeingang extern",
        "03_Pläne und Unterlagen/03_Planentwürfe",
        "03_Pläne und Unterlagen/04_Unterlagen Planausgang",
        "03_Pläne und Unterlagen/05_Qualitätsmanagement",
        "03_Pläne und Unterlagen/06_Plangrundlagen CAD",
        "04_Feldarbeiten und Labor",
        "04_Feldarbeiten und Labor/01 Feldprotokolle",
        "04_Feldarbeiten und Labor/02 Laborversuche",
        "04_Feldarbeiten und Labor/03 Analytik",
        "05_Bilder",
        "06_Arbeitsunterlagen",
        "06_Arbeitsunterlagen/01_Unterlagen AG",
        "06_Arbeitsunterlagen/02_Literatur",
        "06_Arbeitsunterlagen/03_Auswertungen_Berechnungen",
        "07_Berichte",
        "07_Berichte/01 Entwürfe",
        "07_Berichte/02 Final",
        "08_LV",
        "09_Bauüberwachung",
        "00_Projektmanagement",
        "01_Vertragswesen",
        "01_Vertragswesen/01 Anfragen Angebote",
        "01_Vertragswesen/02 Auftrag Rechnungen",
        "01_Vertragswesen/03 Anfragen Angebute NU",
        "01_Vertragswesen/04 Auftrag Rechnungen NU",
        "02_Schriftverkehr",
        "02_Schriftverkehr/01_Briefe",
        "02_Schriftverkehr/02_E-Mails",
        "02_Schriftverkehr/03_Notizen",
        "02_Schriftverkehr/04_Protokolle",
        "03_Pläne und Unterlagen",
        "03_Pläne und Unterlagen/01_Terminplanung",
        "03_Pläne und Unterlagen/02_Unterlagen Planeingang extern",
        "03_Pläne und Unterlagen/03_Planentwürfe",
        "03_Pläne und Unterlagen/04_Unterlagen Planausgang",
        "03_Pläne und Unterlagen/05_Qualitätsmanagement",
        "03_Pläne und Unterlagen/06_Plangrundlagen CAD",
        "04_Feldarbeiten und Labor",
        "04_Feldarbeiten und Labor/01 Feldprotokolle",
        "04_Feldarbeiten und Labor/02 Laborversuche",
        "04_Feldarbeiten und Labor/03 Analytik",
        "05_Bilder",
        "06_Arbeitsunterlagen",
        "06_Arbeitsunterlagen/01_Unterlagen AG",
        "06_Arbeitsunterlagen/02_Literatur",
        "06_Arbeitsunterlagen/03_Auswertungen_Berechnungen",
        "07_Berichte",
        "07_Berichte/01 Entwürfe",
        "07_Berichte/02 Final",
        "08_LV",
        "09_Bauüberwachung",
    ]:
        (new_project_path / sub_path).mkdir(parents=True)

    template_path = Path(
        "G:/Projekte/xxDUxxxxx_x_Vorlage neuer Projektordner/00_Projektmanagement"
    )
    for file_path in [
        "FBAA15B_Checkliste_.pdf",
        "F1C_Projektverfolgung.pdf",
        "FD_ProjektverfolgungII.pdf",
        "VA_Projektverfolgung.pdf",
    ]:
        shutil.copy2(template_path / file_path, new_project_path)


if __name__ == "__main__":
    main()
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
maow
User
Beiträge: 29
Registriert: Mittwoch 24. Februar 2016, 16:30

Hey und danke erstmal für die Antwort. Unabhängig mal von dem Code den du da geschrieben hast:

Es geht nix bisher. Ich bekomme selbst bei einem Hallo Welt-Programm den gleichen Fehler mit auto-py-to-exe. -.-

Pyinstaller ist 4.8 Welche Python-Version funzt denn damit ?
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Und du meinst, die selbe Frage mit einem neuen Benutzeraccount noch einmal zu stellen, erhöht die Wahrscheinlichkeit eine Antwort zu bekommen?

Ich kann dir sagen, dass das erstellen eines "Hallo Welt"-Programmes mit Python 3.9 problemlos funktioniert.
Vielleicht solltest du das in einem leeren Verzeichnis versuchen und nicht in "Desktop", denn bei Windows-Benutzern ist das nicht selten der Abalgeort für alles, oder "Download".
zapatas
User
Beiträge: 26
Registriert: Dienstag 1. Februar 2022, 19:25

oh kann ja auf einmal doch hier posten.

wie auch immer. deine lösung hat nichts gebracht. danke trotzdem.

ja das hallo welt programm ght. aber die erzeugung einer .exe eben leider nicht.
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Ich konnte problemlos eine erstellen.
Dann wäre mein Vorschlag noch ein frisches venv zu verwenden.
zapatas
User
Beiträge: 26
Registriert: Dienstag 1. Februar 2022, 19:25

habe das mal gemacht. bei dem hallo welt rattert er durch. und es geht, d.h. das programm öffnet sich udn schließt sich direkt (ein hallo welt sehe ich nicht; ka ob das normal is). immerhin. ging ja vorher nicht. aber wenn ich das bei meiner copy.py mache hab ich weiterhin das gleiche problem (während das skript als .py funktioniert)

ich hab hier bald graue haare; wusst gar nicht das der einstieg in python so frustrierend ist :roll:
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@zapatas: Das Programm öffnet sich nicht, sondern ein Konsolenfenster in dem das Konsolenprogramm dann läuft öffnet sich wenn man doppelt drauf klickt. Und wenn das Programm beendet ist, schliesst sich das Konsolenfenster wieder. Das ist normal und unabhängig von der Programmiersprache. Was nicht normal ist, ist Konsolenprogramme per doppelklick zu starten. Man öffnet erst eine Konsole und führt dann dort drin das Konsolenprogramm aus. Dann schliesst sich auch das Fenster nicht.

Eine EXE aus einem Python-Programm machen zu wollen, würde ich nicht unbedingt als Einstieg bezeichnen. Das ist ein Extra-Thema das nur unter Windows so wirklich relevant ist, und selbst da muss man das ja nicht zwingend machen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
zapatas
User
Beiträge: 26
Registriert: Dienstag 1. Februar 2022, 19:25

Hm verstehe. Naja ich brauch das als .exe kompiliert, weil ich es eben einigen Kollegen geben muss ohne vorher auf 50 Rechnern denen Python einzurichten.
Antworten