hallo zusammen,
hab mir win32all package installiert.
würde gerne die kontakte aus outlook bearbeiten bzw. auslesen. hab quellcode
zum auslesen gefunden.
hat jemand damit erfahrung??? wie finde ich heraus was es alles für methoden
gibt. gibt es irgenwo ne referenz???
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Gegeben einen C-Header, der aus Zeug wie dem folgenden besteht:
DECLARE_STRING(IDS_XYZ_STATUS_BUSY, "Busy")
DECLARE_STRING(IDS_XYZ_STATUS_COVER_OPEN, "Cover open")
DECLARE_STRING(IDS_XYZ_STATUS_DOOR_OPEN, "Door open")
....(usw, viele hundert Zeilen lang)...
möchte ich eine Datei erzeugen, die so ausschaut:
[IDS_XYZ_STATUS_BUSY]
"Busy"
[IDS_XYZ_STATUS_COVER_OPEN]
"Cover open"
[IDS_XYZ_STATUS_DOOR_OPEN]
"Door open"...
Dachte ich mir, kopierst du den Auszug in ein Pythonscript und schreibst
def DECLARE_STRING(irgendwas, blabla):
aber das ist ein Schmarrn, weil, die IDs sind nicht natürlich - äh -
natürlich nicht definiert. Nun bin ich ja, die Herren Gläubigen des
Templategötzens mögen es mir verzeihen, Senior-Makrologe und schreibe gerne
Sachen wie
#ifdef IMPORT_BUILD
#define DECLARE_STRINGS(__NAME__,__CONTENT__) \
extern const char* __NAME__;
#else
#define DECLARE_STRINGS(__NAME__,__CONTENT__) \
const char* __NAME__ =
__CONTENT;
#endif
Nun heisst es ja immer, mit Python könne man alles Makromäßige umsetzen -
wie aber mache ich sowas? Ich will ja praktisch auf der Fliege ("on the
fly"), neue Variablen erzeugen.
Wäre es möglich, sich in den Name Lookup der Variablen zu hängen, so daß man
z.B. bei Undeclared Identifier die Möglichkeit hat, sich 'ne neue
anzuschaffen?
Zum lachen: Guckst du Google, suche nach Q246772, klickst du auf die
MSDN-Seite.
HOWTO: Retrieve and Set the Default Printer in Windows
Beachte
- die Länge des Beispielcodes im Vergleich zur schier
unglaublichen!!!!!!!!1! Schwere der Aufgabe
- und, vor allem, die Anmerkungen zum Code darunter
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
hallo,
py2exe und installer kenn ich. möchte ich aber nicht benutzen da daraus ja
ne exe erstellt wird und die py-dateien somit nicht mehr editierbar sind.
kannst du mir sagen wie ich herausfinde welche dateien ich benötige???
-----Ursprüngliche Nachricht-----
Von: python-de-bounces+benny=coca-kohler.de(a)python.net
[mailto:python-de-bounces+benny=coca-kohler.de@python.net]Im Auftrag von
Gerhard Häring
Gesendet: Dienstag, 29. Juli 2003 16:33
An: python-de(a)python.net
Betreff: Re: [Python-de] python interpreter benutzen jedoch nicht
installieren
bk wrote:
> hallo,
>
> kann mir vielleicht jemand sagen welche dateien des python-interpreters
ich
> mitausliefern muss(python.exe denke alleine reicht da nicht, brauch ich
> bestimmt noch libs bzw. dlls oder???), um die py-datei ablauffähig zu
> machen. will den python interpreter nicht installieren. [...]
Du kannst "zu Fuß" die benötigten Abhängigkeiten rausfinden
(python{major}{minor}.dll, Dutzende .pyd's usw.), das alles inklusive
python.exe und der Python-DLL in ein Verzeichnis packen und das ausliefertn.
Alternativ sparst du dir diese Arbeit und verwendest einfach py2exe oder
Installer. Diese Tools nehmen dir die Arbeit ab, die Abhängkeiten deines
Python-Skripts rauszufinden und das ganze als ausführbare .exe-Datei zu
verpacken.
URLs:
http://py2exe.sourceforge.net/http://www.mcmillan-inc.com/install1.html
Zu allem Überfluss gibt's alternativ noch
http://www.computronix.com/utilities.shtml#freeze
Ich persönlich hab die ersten beiden verwendet und sie haben gut
funktioniert. Schau dir vielleicht zuerst py2exe an, ist recht einfach
zu verwenden.
-- Gerhard
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Guten Abend,
für die Verwendung in einem Dialog habe ich folgende Klasse (hier gekuertzt
wiedergegeben) programmiert:
....
class Listbox:
def __init__(self, master,select):
self.daten=[]
self.liste=["Test1","Test2","Test5","Test4","Test3"]
self.toplevel=Tkinter.Toplevel(master)
self.toplevel.withdraw() # Toplevel noch nicht anzeigen
self.result=Tkinter.StringVar()
self.listbox=Tkinter.Listbox(self.toplevel,selectmode=select)
self.listbox.pack()
self.button1=Tkinter.Button(self.toplevel,text="OK",command=self.ok)
self.button1.pack()
def einlesen(self,):
self.liste.sort()
for i in self.liste:
self.listbox.insert(END,i)
def auslesen(self,):
a=self.listbox.curselection()
for i in a:
b=Tkinter.getint(i)
self.daten.append(self.liste[b])
return self.daten
def ok(self,):
self.result.set("ok")
self.toplevel.destroy()
def show(self,):
self.toplevel.deiconify()
self.toplevel.wait_window()
return self.result.get()
if __name__ == "__main__":
tk=Tkinter.Tk()
dia=Listbox(tk,EXTENDED)
dia.einlesen()
if dia.show() == "ok":
print dia.auslesen()
else:
print "Abgebrochen"
wenn ich das Programm starte und irgend ein Element auswähle und mit OK
bestaetige bekomme ich folgende Fehlermeldung:
Traceback (most recent call last):
File "./listbox.py", line 54, in ?
print dia.auslesen()
File "./listbox.py", line 30, in auslesen
a=self.listbox.curselection()
File "/usr/lib/python2.2/lib-tk/Tkinter.py", line 2336, in curselection
return self.tk.splitlist(self.tk.call(
TclError: invalid command name ".136326436.136699908"
Ich glaube der Fehler haengt mit der Methode curselection() zusammen, weiter
komme ich aber nicht. Vieleicht weis ja einer von euch wo der Fehelr steckt.
Ich bedanke mich schon mal fuer die Hilfe.
Mit freundlichen Gruessen
Albert Hermeling
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
hallo,
kann mir vielleicht jemand sagen welche dateien des python-interpreters ich
mitausliefern muss(python.exe denke alleine reicht da nicht, brauch ich
bestimmt noch libs bzw. dlls oder???), um die py-datei ablauffähig zu
machen. will den python interpreter nicht installieren. benutze für gui
wxpython. wie kann ich das hinzufügen ohne zu installieren??? welche dateien
brauch ich davon???
gruss
ben
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Ich habe mir heute - natürlich! - den 1.1 RC von OOo runtergeladen (auch
wenn ich ja sonst wenig MS-Produkte verschmähe, finde ich OOo klasse). Und,
guckst du "individuelle Installationsoptionen", gibt es da
Python-Integration über UNO. Das musste ich natürlich gleich angucken - und,
oh graus, es ist Schrott!
1) Es wird eine eigene Pythonkopie installiert. Das finde ich aus folgenden
Gründen Scheisse:
a) ich habe bereits Python auf meinem Rechner -> Platzverschwendung. Aus nur
mir klaren Gründen habe ich sogar zwei Pythons auf meinem Rechner, aber das
ist eine andere Geschichte. Jetzt also habe ich deren drei.
b) ich habe in einer Demonstration persönlicher Unabhängigkeit Java bei mir
deinstalliert (was, wie ich nebenbei bemerken darf, eine erstaunliche
befriedigende Tätigkeit sein kann: Wollen Sie Java löschen? JA JA JA), und
da meckert der OOo Setup ja auch, daß dann ein paar (mir nicht bekannte)
Sachen fehlen. Wer eine Pythonanbindung will, muß Python haben - scheint mir
nicht *völlig* unlogisch aus der Luft gegriffen, oder?
2) Es funktioniert nicht. Es gibt ein
C:\Program Files\OpenOffice.org\program\python-core-2.2.2
verzeichnis mit einem bin\python.exe drin, aber das eigentlich relevante
uno.py liegt hier:
C:\Program Files\OpenOffice.org\program\uno.py
und nicht etwa im eigenen lib-verzeichnis. "import uno" funktioniert nur,
wenn man sich im program-Verzeichnis befindet: schwach.
3) Das OOo API ist dermaßen Schrott, es könnte eine Bravo-Hits-CD sein!
Schaust du dir das Tutorial an:
http://udk.openoffice.org/common/man/concept/unointro.html
fängt OS/2 an Eleganz zu gewinnen an, und wer den OS/2 16-Bit Kerneldebugger
kennt, weiss diese Aussage richtig einzuordnen.
Die Pythonanbindung macht das ganze auch nicht lesbarer. Guckst du dir
"HELLO WORLD" auf der PyUNO Tutorialseite an:
http://udk.openoffice.org/python/python-bridge.html
arg! Ich bin in der Lage, aus dem Stand eine halbstündige Philippika über
MS-COM als Gottesgericht zu halten - aber *so* schlimm ist selbst das
nicht...
Naja, "Mühsam ernährt sich das Eichhörnchen", hoffen wir auf eine bessere
Version in der Zukunft. An sich ist es ja schon lohnenswert, daß überhaupt
ein so "sichtbares" SW-Paket wie OOo auf Python setzt...
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Ich möchte nochmals auf das Thema Projektorganisation in Python zu sprechen
kommen.
Als Hintergrund: Es geht um eine Geräteemluation, benannt PyEMU. Das ganze
läuft in einem Minipc unter Linux (ohne Tastatur & Bildschirm). Nach "innen"
wird V24 gesprochen, nach aussen V24 und TCP/IP und Named Pipes und (in
Zukunft vielleicht) USB. Anforderungen waren z.B.
- Infrastruktur (Hochfahren, Konfiguration, Logfiles abziehen usw.) soll
unabhängig vom nach aussen exportierten Protokoll sein
- Voll dynamisch (d.h. eine Konfigurationsdatei legt fest, welches Protokoll
über welche SChnittstelle mit welchem anderen Protokoll spricht)
- Soll auf einer Read-Only-Partition laufen (d.h. / wird nach dem Booten ro
geremounted), wg. plötzlichem Stromausfall usw.
- Erweiterbar für weitere Protokolle / Schnittstellen (z.B. USB)
Bisher habe ich folgende Projektorganisation
irgendwas
irgendwas/PyEMU
irgendwas/PyEMU/protokoll_1
irgendwas/PyEMU/protokoll_2
....
irgendwas/PyEMU/protokoll_n
In <irgendwas> ist nur ein Programm: main.py aus Gründen der
Übersichtlichkeit. Das importiert das Modul PyEMU und startet es mit
Parametern nach (Vorteil: PyEMU kann unter Windows als NT-Service
konfiguriert werden); eigentliche Codebasis bleibt identisch.
In <irgendwas/PyEMU> liegt der eigentliche Code, bestehend aus ungefähr 50
Sourcen.
In <irgendwas/PyEMU/protokoll_x> liegen die HW-Protokolle, natürlich mit
sprechenden Namen (also z.B. "Fingerprint" für "Protokoll des
Fingerprint-Sensors"). Das Modul hat für jeden Befehl einen eigenen
Sourcecode, aus folgenden Gründen:
- Man findet die Sourcen zu einem Befehl leichter. Das mag harmlos klingen,
ist aber etwas, was mich immer schon gestört hat: ich habe keine "richtige"
IDE in Python, und bei sagen wir 60 Befehlen ist die Suche nach einem
speziellen rein über grep doch etwas *arg* mühsam. Der Dateiname als
Strukturierung bietet sich da schon an.
- Die Befehle können ziemlich umständlich sein (z.B. Statistikauswertung,
Verschlüsselung usw.) -> die Sourcen sollten nach Möglichkeit nicht >500
Zeilen haben.
- Die Verzeichnisse enthalten je bis zu 60 Sourcen.
Meine Probleme mit dem Ganzen
1) Abhängigkeiten der Module
Beispiel. Ich möchte aus
irgendwas/PyEMU/protokoll_1/blabla.py
eine Funktion in
irgendwas/PyEMU/misc.py
aufrufen. Dann muß ich schreiben (immer vorausgesetzt, daß <irgendwas>
bereits in den PYTHON_PATH aufgenommen wurde)
import PyEMU.misc
PyEMU.misc.funktion()
Wenn ich statt dessen in
irgendwas/PyEMU/blabla.py
bin, kann ich direkt schreiben
import misc
misc.funktion()
Noch schlimmer wird es, wenn protokoll_1 etwas von protokoll_2 braucht (was
möglich ist, wenn es sich um abhängige Hardware handelt; z.B. kann Gerätetyp
A nur betrieben werden, wenn Gerätetyp B (Alarm) möglich ist; also:
in irgendwas/PyEMU/protokoll_1/funktion.py:
import PyEMU.protokoll_2.irgendwas
if PyEMU.protokoll_2.irgendwas.alarmIstDa():
# ok, weiter gehts
2) Entscheidung, was mache ich als Modul, was nicht.
z.B. habe ich verschiedene Transportsysteme für die Protokolle (V24, TCP/IP,
Dateibasiert für Named Pipes & Testfiles).
Mache ich daraus ein eigenständiges Modul, oder lasse ich die Sourcen im
"main"-Verzeichnis? Bisher ja; eigentlich gehört das aber auch in ein Modul
rein. Aber: Mache ich ein Modul "transportsystems" oder ein Modul pro
Transportsystem?
3) Ferner: In der Konfiguration habe ich z.B. Einträge wie den folgenden
(Real-Life-Beispiel:)
<transport>
<protocol>FingerprintProtocol</protocol>
<type>SerialTransportLayer</type>
<portname>COM1</portname>
<baudrate>38400</baudrate>
<parity>none</parity>
<stopbits>1</stopbits>
<databits>8</databits>
<traceV24>0</traceV24>
</transport>
Wenn ich die Konfigurationsdatei einlese, kann ich hübsch ein
requestedType = { hier z.B. "SerialTransportLayer" }
...
module = __import__(requestedType, globals(), locals(), []);
return getattr( module, requestedType )
machen und habe meine Transportschicht. Wenn ich die aber in ein Modul
gepackt habe, komme ich in Namensraumkonflikteschrott rein.
4) Da habe ich dann so hilfsmodule wie "trace.py". Packe ich die in ein
weiteres Modul? Gehört das nicht in sitepackages, weil es
Projektübergreifend gestaltet werden kann?
Irgendwie befriedigt mich die Projektorganisation nicht: sie funktioniert,
ist aber nicht "schön".
Deshalb nochmal die Frage: Wie strukturiert ihr größere Pythonprojekte
(Source-# > 300)?
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Freunde,
1) Es gibt ein Minipapier von mir zum Thema: XML, Umlaute und Python.
http://p-nand-q.com/python/umlaute_in_xml.html
Kommentare willkommen.
2) Unser Büdong-Projekt wächst und gedeiht; ich bin allerdings mit der
Organisation der Quäldateien unzufrieden. Deshalb die Anfängerfrage:
Wie strukturiert Ihr denn größere Pythonprojekte?
- Wann ist der Einsatz von Modulen angezeigt?
- Werden die Module in lib\site-packages gepackt, oder in das
Projektverzeichnis?
- Welches Versionskontrollesystem bietet sich (unter Windows, beim SciTE)
an?
- Eure Erfahrungen mit Unittests?
3) Ich möchte eine RPC-Schnittstelle zwischen Python und Native-C++ im
Netzwerk haben. Sockets, klar. Es bieten sich folgende Möglichkeiten:
a) standardisiertes Protokoll (z.B. XMLRPC, Seife), mit Einsatz
entsprechender 3rd Party Libs in C++ und Python. (Lizenzfragen??? GPL darf
ich nicht benutzen). In diesem Fall spricht Python mit C++ über Sockets.
b) Eine pyd, die ein Pythonscript ausführt, welches mit besagter pyd
spricht. Vorteil: Python spricht mit Python übers Netz, es gibt nur eine
lokale Schnittstelle (die pyd eben) -> C++ Code minimiert, RPC-Protokoll
austauschbar.
4) MPUC: isch werde frühestens 0x44aa200 Millisekunden nach Mitternacht
erscheinen.
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
> Liest sich ganz gut, aber:
> <!ENTITY ouml "ö">
> Woher weiß man das man hier #246 eingeben muß?
> Der link auf Python-Unicode-Faq gibt 404 zurück.
Danke, ich habe beides korrigiert.
> Was ist Büdong?
Lautmalerisches Kosewort für Python?
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de