Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einleitung
2 Überblick über Python
3 Die Arbeit mit Python
4 Der interaktive Modus
5 Grundlegendes zu Python-Programmen
6 Kontrollstrukturen
7 Das Laufzeitmodell
8 Basisdatentypen
9 Benutzerinteraktion und Dateizugriff
10 Funktionen
11 Modularisierung
12 Objektorientierung
13 Weitere Spracheigenschaften
14 Mathematik
15 Strings
16 Datum und Zeit
17 Schnittstelle zum Betriebssystem
18 Parallele Programmierung
19 Datenspeicherung
20 Netzwerkkommunikation
21 Debugging
22 Distribution von Python-Projekten
23 Optimierung
24 Grafische Benutzeroberflächen
25 Python als serverseitige Programmiersprache im WWW mit Django
26 Anbindung an andere Programmiersprachen
27 Insiderwissen
28 Zukunft von Python
A Anhang
Stichwort

Download:
- ZIP, ca. 4,8 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Python von Peter Kaiser, Johannes Ernesti
Das umfassende Handbuch - Aktuell zu Python 2.5
Buch: Python

Python
gebunden, mit CD
819 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1110-9
Pfeil 22 Distribution von Python-Projekten
  Pfeil 22.1 Erstellen von Distributionen – distutils
    Pfeil 22.1.1 Schreiben des Moduls
    Pfeil 22.1.2 Das Installationsscript
    Pfeil 22.1.3 Erstellen einer Quellcodedistribution
    Pfeil 22.1.4 Erstellen einer Binärdistribution
    Pfeil 22.1.5 Beispiel für die Verwendung einer Distribution
  Pfeil 22.2 Erstellen von EXE-Dateien – py2exe
  Pfeil 22.3 Automatisches Erstellen einer Dokumentation – epydoc
    Pfeil 22.3.1 Docstrings und ihre Formatierung für epydoc


Galileo Computing - Zum Seitenanfang

22.2 Erstellen von EXE-Dateien – py2exe  topZur vorigen Überschrift

Das Thema dieses Kapitels ist eine Erweiterung des Pakets distutils namens py2exe. Durch das Modul py2exe (sprich: py to exe) wird es möglich, ein Python-Programm zusammen mit dem Python-Interpreter zu einer einzelnen ausführbaren Datei (Windows-EXE) zu schnüren, sodass das fertige Programm auch in Umgebungen ausgeführt werden kann, in denen keine Python-Installation vorhanden ist. Beachten Sie, dass py2exe kein Installer ist, sondern dass das Programm über die resultierende EXE direkt ausführbar ist. Beachten Sie außerdem, dass py2exe eine EXE erzeugt, die sich ausschließlich unter Windows ausführen lässt und dass das Erstellen einer ausführbaren Datei mit py2exe ebenfalls unter Windows geschehen muss.

Das Modul py2exe ist nicht im Lieferumfang von Python enthalten. Sie müssen es von der Website des Open-Source-Projekts unter http://www.py2exe.org herunterladen.

In diesem Kapitel soll ein kleines Beispielprogramm geschrieben werden, das dann mittels py2exe in eine für sich stehende ausführbare Datei verwandelt werden soll. Hier sehen Sie zunächst den Quelltext des Beispielprogramms:

import random 
import sys
def verwirble_text(text): liste = [] for wort in text.split(): w = list(wort[1:-1]) random.shuffle(w) w = "".join(w) liste.append("".join([wort[0], w, wort[-1]])) return " ".join(liste)
if __name__ == "__main__": text = u""" Hallo Python erm\u00F6glicht einen glatten \u00DCbergang von kleinen, einfachen Scripten zu sehr komplexen Anwendungen. Dieses Buch vermittelt umfassende Python-Kenntnisse """ print verwirble_text(text)

Es handelt sich dabei um die Funktion verwirble_text des vorherigen Beispielprogramms, die dahingehend erweitert wurde, dass sie automatisch einen »verwirbelten« Beispieltext ausgibt, wenn das Programm ausgeführt wird.

Da py2exe eine Erweiterung des Pakets distutils ist, müssen wir auch in diesem Fall die Programmdatei setup.py implementieren. Bezogen auf unser obiges Beispielprogramm sieht sie folgendermaßen aus:

from py2exe.build_exe import py2exe 
from distutils.core import setup
setup( […] console=["programm.py"] )

Statt der Auslassungszeichen stehen die üblichen Parameter der Funktion setup im Quellcode, über die beispielsweise der Name oder die E-Mail-Adresse des Autors angegeben werden kann. Um das Installationsscript für py2exe nutzbar zu machen, muss durch den Schlüsselwortparameter console eine Liste mit mindestens einem Eintrag übergeben werden. Jeder Eintrag steht dabei für den Namen einer Programmdatei, die später zu einem eigenständigen ausführbaren Programm werden soll. In unserem Fall soll dies nur für die Programmdatei programm.py durchgeführt werden.

Beachten Sie, dass alle Programmdateien, die für den Schlüsselwortparameter console übergeben werden, später als reine Konsolenanwendung enden. Alternativ kann der Parameter windows für eine Anwendung mit grafischer Benutzeroberfläche verwendet werden.

Nachdem das Installationsscript fertig ist, kann die ausführbare Datei erzeugt werden. Dazu muss das Installationsscript setup.py mit dem Argument py2exe aufgerufen werden:

setup.py py2exe

Der Rest geschieht automatisch. Nachdem sich das Installationsscript beendet hat, finden Sie im Programmverzeichnis zwei Unterordner namens build und dist. Der erste Ordner enthält temporäre Dateien von py2exe und kann problemlos gelöscht werden. Im Ordner dist ist die fertige Distribution Ihres Python-Programms enthalten. Das beinhaltet nicht nur die ausführbare Datei, in unserem Fall programm.exe, sondern noch weitere ausführbare und nicht-ausführbare Dateien, die für das endgültige Programm wichtig sind. So sind beispielsweise der Python-Interpreter in der DLL Python25.dll und die benötigten Teile der Standardbibliothek im Archiv library.zip ausgelagert.


Hinweis
Im Verzeichnis dist finden Sie neben den angesprochenen Dateien vor allem auch die DLL MSVCR71.dll. Diese Datei stammt von Microsoft und sollte Ihrem Programm daher nur beiliegen, wenn Sie die Erlaubnis dazu haben.


Neben MSVCR71.dll werden noch weitere DLLs benötigt, damit Ihr Programm ausgeführt werden kann. Welche das sind, teilt Ihnen das Installationsscript mit, kurz bevor es sich beendet:

*** binary dependencies *** 
Your executable(s) also depend on these dlls which are not included, 
you may or may not need to distribute them. 
Make sure you have the license if you distribute any of them, and 
make sure you don't distribute files belonging to the operating  
system. 
   ADVAPI32.dll - C:\WINDOWS\system32\ADVAPI32.dll 
   USER32.dll - C:\WINDOWS\system32\USER32.dll 
   SHELL32.dll - C:\WINDOWS\system32\SHELL32.dll 
   KERNEL32.dll - C:\WINDOWS\system32\KERNEL32.dll

Beachten Sie, dass die hier aufgelisteten DLLs im Gegensatz zu MSVCR71.dll auf jeder Windows-Installation verfügbar sein sollten.


Hinweis
Das Modul py2exe arbeitet problemlos mit einem Großteil der Standardbibliothek von Python zusammen. Auch viele Bibliotheken von Drittanbietern funktionieren einwandfrei. Trotzdem sind in einigen Fällen einige Tricks vonnöten, um ein bestimmtes Modul oder Paket mit py2exe lauffähig zu machen. Für solche Fälle listet die Website http://www.py2exe.org unter dem Stichwort »Working with various packages and modules« Tipps für bestimmte Pakete und Module auf.




Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Python






Python
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Linux






 Linux


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


Zum Katalog: Praxisbuch Web 2.0






 Praxisbuch Web 2.0


Zum Katalog: UML 2.0






 UML 2.0


Zum Katalog: Praxisbuch Objektorientierung






 Praxisbuch Objektorientierung


Zum Katalog: Einstieg in SQL






 Einstieg in SQL


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für Fachinformatiker


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de