Esky

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
Benutzeravatar
Sophus
User
Beiträge: 1109
Registriert: Freitag 25. April 2014, 12:46
Wohnort: Osnabrück

Hallo Leute,

hat jemand von euch schon Erfahrungen mit esky gemacht? Diese Bibliothek soll dazu dienen, dass man seine eigene Anwendung aktualisieren kann.

Ich habe mich an dieses Tutorial orientiert, sprich, die Skripte erst einmal übernommen: https://github.com/cloudmatrix/esky/tre ... r/tutorial

example.py

Code: Alles auswählen

import sys
import os
import esky

if getattr(sys,"frozen",False):
    app = esky.Esky(sys.executable,"http://sophus.bplaced.net/download/")
    print "You are running: %s" % app.active_version
    try:
        if(app.find_update() != None):
            app.auto_update()
            appexe = esky.util.appexe_from_executable(sys.executable)
            os.execv(appexe,[appexe] + sys.argv[1:])
    except Exception, e:
        print "ERROR UPDATING APP:", e
    app.cleanup()

print "HELLO WORLD"
setup.py

Code: Alles auswählen

import sys
from esky import bdist_esky
from distutils.core import setup

# for windows
# > python setup.py bdist_esky
if sys.platform in ['win32','cygwin','win64']:

    # Use bdist_esky instead of py2exe

    setup(
        name = "example-app",
        version = "0.2",
        #  All executables are listed in the "scripts" argument
        scripts = ["example.py"],
        options = {"bdist_esky": {
                  "freezer_module":"py2exe",
                }}
    )

# for mac
# > python setup.py bdist_esky
elif sys.platform == 'darwin':
    setup(
        name = "example-app",
        version = "0.2",
        scripts = ["example.py"],
        options = {"bdist_esky": {
                    "freezer_module":"py2app"
                 }}
    )
Sobald meine Anwendung mit py2exe ausgeführt wurde, habe ich, wie dort in der README beschrieben, die entsprechende Ordnerstruktur. Alle DLL-Dateien und sonstige Dateien sind vorhanden, auch die beiden Exe-Dateien, eine für esky, und eine exe-Datei für die Anwendung. Oben in example.py seht ihr den Pfad "meines" Servers. Zu Testzwecken habe ich bplaced genommen. Dort habe ich eine höhere Version hinterlegt. Starte ich die example.exe sowohl für esky als auch für die Anwendung nun über die Konsole, dann bekomme ich folgende Fehlermeldung:
You are running: 0.2
ERROR UPDATING APP: 'ascii' codec can't decode byte 0xdc in position 14: ordinal
not in range(128)
HELLO WORLD
Antworten