mein erstes Programm ist nun fertig (so grob). Es handelt sich um einen einfachen Job.
csv Datei einlesen
Daten in Listen speichern
Daten bearbeiten, neu berechnen
Daten wieder als csv speichern
Sicher habe ich noch lange nicht die Kürze von Python ausgereizt aber immoment ist für mich die Lesbarkeit noch etwas wichtiger als der eleganteste Weg.
Das Programm möchte ich euch später vorstellen, damit ihr vielleicht schreibt was ich besser machen sollte.
Zuerst muss ich aber die Verteilung klären und trotz einer langen Nacht mit Tante Google, habe ich nicht gefunden.
Egal, bevor ich abschweife.
Das ganze ist in Python 3, ich benutze die Python IDLE (Python 3.4) und habe Classes sowie ein paar Funktionen in packages ausgelagert.
Im anschluss versucht, mit cxFreeze eine exe zu erstellen, was leider nicht funktioniert.
Die py selber klappt reibungslos, wen ich die exe erstelle, passiert etwas komisches:
- Unter Programme\Test wird eine exe erstellt sowie in dem Verzeichnis selbst (dann unter Build etc).
- Es erscheint eine Fehlermeldung, dass __FILE__ nicht bekannt ist was für mich darauf deutet, dass ein package nicht vorhanden ist (sys?)
Daraus ergeben sich für mich drei Fragen:
- wie soll ich den Code einer py Datei gestalten ? Für mich sollte eine main def vorhanden sein, wichtige Klassen etc ausgelagert, sonst blickt man nicht mehr durch
- wie kann ich eine exe erstellen, die auf Rechnern läuft, auf denen kein Python installiert ist? Erstmal keine GUI nötig, ich will in Ruhe erstmal die Techniken lernen. Aber das Schnüren der Packages scheint doch etwas anspruchsvoll zu sein (aber immerhin lernt man dabei was eigentlich so vor sich geht)
- was mache ich im aktuellen Fall falsch? Unten meine py Datei (das ist nur eine Testdatei, nicht mein Programm) sowie die setup.py, die ich aufgerufen habe (error in Line 7 und Line 11, Name __file__ not is not defined
SETUP:
Code: Alles auswählen
from cx_Freeze import setup, Executable
executables = [
Executable('test.py')
]
setup(name='test',
version='0.1',
description='Sample cx_Freeze script',
executables=executables
)
Code: Alles auswählen
import sys
import os
def main():
print('Hallo')
print(str(sys.argv[0]))
print(str(os.path.dirname(os.path.abspath(__file__))))
input()
if __name__ == '__main__':
main()