Seite 1 von 1

Kann mir jemand mit einer funktionierenden setup.py helfen?

Verfasst: Mittwoch 2. November 2005, 23:46
von Damaskus
Hallo,
ich versuch seit Tagen relativ erfolglos mit py2exe ein GTK Programm zu kompilieren. Hat sowas schonmal jemand gemacht? Denn ich blick da irgendwie überhaupt nicht durch. Folgende Module sollten mit rein:

Code: Alles auswählen

import pygtk
pygtk.require("2.0")
import gtk
import gtk.glade
import string
import sys
import pango
from pysqlite2 import dbapi2 as sqlite
import pickle
import gobject
import time
import subprocess
Ich kann das ganze zwar erfolgreich kompilieren nur bricht das Programm beim starten gleich mit der Meldung

Code: Alles auswählen

Traceback (most recent call last):
  File "programm.py", line 3, in ?
  File "pygtk.pyc", line 73, in require
AssertionError: required version '2.0' not found on system
ab. Kann mir da jemand weiter helfen und was muss da dann alles in die setup.py mit rein?

Gruß
Damaskus

Re: Kann mir jemand mit einer funktionierenden setup.py helf

Verfasst: Donnerstag 3. November 2005, 08:45
von gerold
Damaskus hat geschrieben:Ich kann das ganze zwar erfolgreich kompilieren nur bricht das Programm beim starten gleich mit der Meldung

Code: Alles auswählen

Traceback (most recent call last):
  File "programm.py", line 3, in ?
  File "pygtk.pyc", line 73, in require
AssertionError: required version '2.0' not found on system
ab.
Hi Damaskus!

Das ist ein bekannter Fehler.

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-

import sys
import pygtk
#this is needed for py2exe
if sys.platform == 'win32':
    #win32 platform, add the "lib" folder to the system path
    os.environ['PATH'] += ";lib;"
else:
    #not win32, ensure version 2.0 of pygtk is imported
    pygtk.require('2.0')
import gtk
Nähere Infos findest du hier http://www.anti-particle.com/py2exe.shtml.

lg
Gerold
:-)

Verfasst: Freitag 4. November 2005, 07:27
von Damaskus
Funktioniert!
Danke

Verfasst: Montag 14. November 2005, 07:45
von Damaskus
Hi,
ich hab leider nochmal ein Problem mit py2exe.
Und zwar wenn ich das Programm "kompiliere" bekomme ich noch folgende Fehlermeldung

Code: Alles auswählen

The following modules appear to be missing
['gdk', 'ltihooks']
Weder eifriges rumexperimentieren noch gegoogle / yahooen und sonstwas hat mich bisher weiter gebracht. Habt ihr dafür ne Lösung parat?

Gruß
Damaskus

Verfasst: Montag 14. November 2005, 13:48
von Leonidas
Das bekomme ich auch oft (immer?). Ich ignoriere es, da das Programm auch so einwandfrei läuft. Laut PyGTK Mailingliste (oder war es die von py2exe) ist das auch kein Problem.

Verfasst: Dienstag 15. November 2005, 07:36
von Damaskus
Danke.

Und gleich kommt auch schon das nächste Problem :cry:

Die Dateien werden erfolgreich kompiliert.
Und wenn ich die EXE dann auf einem Rechner starte auf dem kein Python vorhanden ist, dann will er Massenhaft viele DLL Dateien.

Sollte py2exe die nicht automatisch mit einbinden?

Wenn ich ihm dann die Dlls manuell gebe ist er damit auch zufrieden.
Nur kommt dann folgende Fehlermeldung:

Code: Alles auswählen

Der Prozedureinsprungspunkt "gdk_cairo_create" wurde in der DLL "libgdk-win32-2.0-0.dll" nicht gefunden.
Hat dazu jemand eine Idee?
Auf Rechnern mit installiertem GTK+ und Python passiert das nicht.

Verfasst: Dienstag 15. November 2005, 07:53
von gerold
Damaskus hat geschrieben: Auf Rechnern mit installiertem GTK+ und Python passiert das nicht.
Hi Damaskus!

Bist du so wie in dieser Anleitung vorgegangen und hast du die Ordner "lib" und "bin" in den "dist"-Ordner kopiert?

http://www.anti-particle.com/py2exe.shtml

Bei mir hat es so funktioniert.

lg
Gerold
:-)

Verfasst: Dienstag 29. November 2005, 23:18
von Damaskus
gerold hat geschrieben:
Damaskus hat geschrieben: Auf Rechnern mit installiertem GTK+ und Python passiert das nicht.
Hi Damaskus!

Bist du so wie in dieser Anleitung vorgegangen und hast du die Ordner "lib" und "bin" in den "dist"-Ordner kopiert?

http://www.anti-particle.com/py2exe.shtml

Bei mir hat es so funktioniert.

lg
Gerold
:-)
Hi,
bin leider erst jetzt wieder dazu gekommen mich darum zu kümmern...

Also mit py2exe 0.4.x ist es so wie oben beschrieben anscheinend möglich.
Da ich allerdings gern mit der 0.6.x arbeiten würd gibts anscheinend nur noch http://www.anti-particle.com/py2exe-0.5.shtml diesen weg. Zumindest funktioniert der bei mir als einzigster. Schade ist nur das dazu gtk mitinstalliert werden muss auf dem Zielrechner.

Verfasst: Mittwoch 30. November 2005, 16:21
von Leonidas
Damaskus hat geschrieben:Schade ist nur das dazu gtk mitinstalliert werden muss auf dem Zielrechner.
Das muss es nicht, du kannst es dazupacken. Habe ich aber noch nicht geschafft. Irgendwo aber habe ich eine Anleitung gelesen - sorry, weiß nicht mehr wo.

HowTo zu py2exe & GTK+

Verfasst: Samstag 3. Dezember 2005, 20:00
von Damaskus
So nach viel ausprobieren und vielen Tipps hier aus dem Forum hab ichs endlich hinbekommen ein GUI Programm mit GTK+ und py2exe erfolgreich zu kompilieren und auf einem anderen Rechner zum laufen zu bekommen.

Hier mal eine kleine Anleitung dazu.
Vieleicht hilfts ja jemandem weiter :wink:

1. In meineanwendung.py folgende Zeilen an erster Stelle einfügen

Code: Alles auswählen

import os
os.environ['PATH'] += 'gtk/lib;gtk/bin'
2. Folgende setup.py modifizieren und benutzen

Code: Alles auswählen

from distutils.core import setup
import py2exe
import glob
import sys

sys.path.append('src')
includes = ['encodings', 'encodings.utf-8',]

opts = {
    'py2exe': {
        'includes': 'pango,atk,gobject,encodings,encodings.*',
        'dll_excludes': [
            'iconv.dll','intl.dll','libatk-1.0-0.dll',
            'libgdk_pixbuf-2.0-0.dll','libgdk-win32-2.0-0.dll',
            'libglib-2.0-0.dll','libgmodule-2.0-0.dll',
            'libgobject-2.0-0.dll','libgthread-2.0-0.dll',
            'libgtk-win32-2.0-0.dll','libpango-1.0-0.dll',
            'libpangowin32-1.0-0.dll'
        ],
    }
}

setup(
    name = 'Meine Anwendung',
    version = '1.0',
    description = ' Meine Anwendung ',
    windows = [{'script': 'src/anwendung.py',
                'icon_resources': [(1, 'src/icon.ico')]}],
    options=opts,
    data_files=[("glade", glob.glob("src/*.glade"))
    ],
)
3. Die Anwenung mit dem Befehl

Code: Alles auswählen

python setup.py py2exe
kompilieren

4. In den nun entstandenen Ordner "dist" folgende Ordner hinein kopieren / erstellen

Code: Alles auswählen

Ordner "gtk" erstellen
Ordner "bin, etc, lib" aus c:\GTK nach dist\gtk kopieren
aus dist\gtk\bin können alle Dateien außer die *.dll gelöscht werden

Um den gtkthemeselector verwenden zu können Datei dist\bin die Datei gtkthemeselector.exe nicht löschen
Ordner dist\share erstellen
Ordner dist\share\themes erstellen
Nach dist\share\themes die gewünschten GTK Themes kopieren
Nun sollte die Anwendung funktionstüchtig sein und auf anderen Rechnern laufen. Evtl. wird noch die Datei "mfc71.dll" benötigt. Einfach aus dem Ordner c:\windows\system32 rauskopieren und in den gleichen Ordner auf dem Zielrechner reinkopieren.
Bzw. falls ein Installer verwendet werden soll per Installer nach c:\windows\system32 kopieren lassen.

Gruß
Damaskus

Re: HowTo zu py2exe & GTK+

Verfasst: Samstag 3. Dezember 2005, 21:43
von gerold
Damaskus hat geschrieben: Hier mal eine kleine Anleitung dazu.
Vieleicht hilfts ja jemandem weiter :wink:
Hi Damaskus!

Nicht schlecht! So eine Anleitung ist schon etwas feines. :D

lg
Gerold
:-)