Hallo
Ich habe keine Erfahrung mit python.
Ich habe ein Control für ein gDesklet geschrieben, dass funktioniert.
Nun möchte ich es erweitern und habe folgendes Problem.
Egal welche Änderung ich in der __init__.py Datei mache, die Änderungen werden nicht angenommen.
Es läuft immer der "alte" Code.
Ich habe alles erdenkliche ausprobiert, kein Erfolg.
Wenn ich das Control mit test-control.py teste, habe ich den aktuellen Code.
Ich habe echt keinen Plan mehr.
Ich habe python 2.5 und 2.6 installiert und Ubuntu 9.04
Bitte um Hinweise
Georg
Verständnisproblem mit python
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Erzaehl doch mal ein bisschen mehr ueber den Ordneraufbau und ueber den "alten" und "neuen" Code.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Hallo
Also ich habe in /usr/share/gdesklets/Cortrol einen Ordner Webservice.
In diesem ist das Interface IWebservice
und die Datei __ini__.py
Das hat alles funktioniert.
Jetzt wollte ich das ganze erweitern um weitere porperties und den Code für den Webserviceaufruf.
Ich habe ständig die Meldung bekommen, dass kein Control für das Interface definiert ist.
Da es mit test-control.py funktioniert hat, habe ich ein bischen länger gebraucht, dass ich gemerkt habe, dass beim Aufruf des Desklets nicht der aktualisierte Code von __init__.py genommen wird.
Das Interface wird aktualisert, bekommt bei Änderungen auch immer die neue Interfacenummer (in der gdesklet shell)
Da ich die __jni__.py schon öfters geändert habe und das auch funktuiert hat, bin ich ein bischen ratlos.
Da ich, wie gesagt, mit python und Ubunutu wenig Erfahrung habe, kann ich das Problem nicht wirklich lokalisieren.
Wird eine pyc Datei benötigt? Lösche ich diese weg, funktioniert der Aufruf auch. Starte ich die gdesklet shell, werden die pyc Dateien erstellt.
Legt python irgenwo eine Kopie an?
Komme ich vielleicht mit den python Versionen durcheinander ?
Viele Fragen....
Gruß
Georg
Also ich habe in /usr/share/gdesklets/Cortrol einen Ordner Webservice.
In diesem ist das Interface IWebservice
Code: Alles auswählen
from libdesklets.controls import Interface, Permission
class IWebservice(Interface):
host = Permission.READWRITE
port = Permission.READWRITE
context = Permission.READWRITE
user = Permission.READWRITE
pw = Permission.READWRITE
Code: Alles auswählen
from libdesklets.controls import Control
from IWebservice import IWebservice
class Webservice(Control, IWebservice):
def __init__(self):
self.__host = '10.0.0.170'
self.__port = 8080
self.__context = 'testws-1.0-SNAPSHOT'
self.__user = 'admin'
self.__pw = 'admin'
Control.__init__(self)
def set_host(self, h):
self.__host = h
def get_host(self):
return self.__host
def __set_port(self, p):
self.__port = p
def __get_port(self):
return 'holen des ports'
def __set_context(self, c):
self.__context = c
def __get_context(self):
return 'holen des contextes'
def __set_user(self, u):
self.__user = u
def __get_user(self):
return 'holen des users'
def __set_pw(self, pw):
self.__pw = pw
def __get_pw(self):
return 'holen des pws'
host = property(fget=get_host,fset=set_host, doc = "Host" )
port = property(fget=__get_port,fset=__set_port, doc = "Port" )
context = property(fget=__get_context,fset=__set_context, doc = "Context" )
user = property(fget=__get_user,fset=__set_user, doc = "User" )
pw = property(fget=__get_pw,fset=__set_pw, doc = "Passwort" )
def get_class(): return Webservice
Jetzt wollte ich das ganze erweitern um weitere porperties und den Code für den Webserviceaufruf.
Ich habe ständig die Meldung bekommen, dass kein Control für das Interface definiert ist.
Da es mit test-control.py funktioniert hat, habe ich ein bischen länger gebraucht, dass ich gemerkt habe, dass beim Aufruf des Desklets nicht der aktualisierte Code von __init__.py genommen wird.
Das Interface wird aktualisert, bekommt bei Änderungen auch immer die neue Interfacenummer (in der gdesklet shell)
Da ich die __jni__.py schon öfters geändert habe und das auch funktuiert hat, bin ich ein bischen ratlos.
Da ich, wie gesagt, mit python und Ubunutu wenig Erfahrung habe, kann ich das Problem nicht wirklich lokalisieren.
Wird eine pyc Datei benötigt? Lösche ich diese weg, funktioniert der Aufruf auch. Starte ich die gdesklet shell, werden die pyc Dateien erstellt.
Legt python irgenwo eine Kopie an?
Komme ich vielleicht mit den python Versionen durcheinander ?
Viele Fragen....
Gruß
Georg
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Loeschen ist im Normalfall besser als umbenennen.
@OP Warum programmierst du eigentlich Java in Python-Syntax? Und warum so viel Logik in einer `__init__.py`? Das gehoert in ein "richtiges" Modul, am besten zu deinem "Interface".
@OP Warum programmierst du eigentlich Java in Python-Syntax? Und warum so viel Logik in einer `__init__.py`? Das gehoert in ein "richtiges" Modul, am besten zu deinem "Interface".
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Hallo
Sorry, dass ich im falschen Forum gepostet habe.
Doch möchte ich noch die Lösung anhängen.
http://mein-neues-blog.de/2008/02/14/or ... tallation/
Die controls.reg löschen brachte den Erfolg.
@cofi
Da ich mir erst vor kurzen Ubuntu installiert und da Desklets gesehen habe, wollte ich es ganz einfach mal ausprobieren.
Ich bin daher nicht ganz vertraut mit richtigen python code.
Danke
Georg
Sorry, dass ich im falschen Forum gepostet habe.
Doch möchte ich noch die Lösung anhängen.
http://mein-neues-blog.de/2008/02/14/or ... tallation/
Die controls.reg löschen brachte den Erfolg.
@cofi
Da ich mir erst vor kurzen Ubuntu installiert und da Desklets gesehen habe, wollte ich es ganz einfach mal ausprobieren.
Ich bin daher nicht ganz vertraut mit richtigen python code.
Danke
Georg