Hallo zusammen,
ich möchte eine Liste von Strings an eine Funktion übergeben, die aber
ein File-Objekt erwartet. Gibt es eine Möglichkeit, die Liste
umzuwandeln? Bisher behelfe ich mir dadurch, dass ich die Liste in eine
temporäre Datei schreibe und daraus anschließend wieder lese. Das
scheint mir nicht sehr elegant.
Gruss,
Andreas
--
Andreas Grytz | http://www.linuxnewmedia.de
Stefan-George-Ring 24 | Tel: +49 (0) 89 993411-0
D-81929 München | Fax: +49 (0) 89 993411-99
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Hi!
Wie kann ich eine Kasse auf mehre Dateien verteilen,
wenn es zu unübersichtlich wir, alle Methoden in einer
Datei zu belassen? Nur mit Vererbung?
MfG
Olaf
--
===================================================
"Meine Meinung steht fest. Bitte verwirren sie mich
nicht mit Tatsachen!"
Unbekannt.
===================================================
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Ich kämpfe weiter gegen die Windmühlen des Fadenwesens. Ich habe jetzt eine
Lösung, die ich den Experten gerne zur Begutachtung vorlegen möchte. Sie
basiert auf mehr-oder-minder undokumentierten Funktionen; die einzige Info
dazu stammt aus PEP 311, diese ist aber meines Erachtens unvollständig (denn
siehe da der untere Teil im Mainthread).
Folgendes ist die Ausgangssituation:
- Es gibt einen Mainthread, der den Interpreter hochzieht (Py_Initialize()).
- Es gibt viele bunte Threads, die auf den Interpreter zugreifen wollen.
Lösung (Codeauszug):
1) Im Mainthread am Anfang:
Py_Initialize();
// keine Ahnung warum, aber das muß so sein:
PyEval_InitThreads();
m_pyThreadState = PyThreadState_Get();
PyEval_ReleaseThread(m_pyThreadState);
2) Im Mainthread am Ende:
// wichtig, sonst Fehler, weil Threadstate NULL
PyEval_AcquireThread(m_pyThreadState);
Py_Finalize();
3) Vor einem Python-Funktionsaufruf (Klasse PythonCall im gestern
geschickten Beispiel)
m_GIL = PyGILState_Ensure();
4) Nach einem Python-Funktionsaufruf
PyGILState_Release(m_GIL);
Und damit scheint es zu klappen; die Threads können parallel (naja,
semiparallel) ablaufen.
Übrigens, in einem Anfall geistiger Umnachtung (der sich schwer von meinem
Normalzustand unterscheiden läßt, ich weiß), habe ich mir boost.python
angeschaut - kann es sein, daß sich der Code da gar nicht um Threads
kümmert? Abgesehen davon, daß mir angesichts selbigenTemplatecodes die mir
heute bevorstehende Weisheitszahnentfernung geradezu als paradiesische
Verheissung erscheint.
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Mmmhh... Ich werde mir dem mit dem Reply-To
nie merken können...
Gruß
Olaf
-----Weitergeleitete Nachricht-----
From: Olaf Radicke <olaf_rad(a)gmx.de>
To: Gerhard Häring <gh(a)ghaering.de>
Subject: Re: [Python-de] threads killn
Date: 30 Oct 2003 17:27:04 +0100
Am Mit, 2003-10-29 um 14.05 schrieb Gerhard Häring:
> Olaf Radicke wrote:
> > Hi!
> >
> > Ich habe einen Thread der an einem Socket lauscht.
> > Bei der Initialisierung wird ein weiterer Thread
> > gestartet der den Timeout überwacht. Wenn auf den
> > Socket zulange gewartet wird, soll der zweite Thread
> > den ersten killen und dann sich selbst. [...]
>
> Sockets haben ab 2.3 eine settimeout() Methode.
Das war's! Problem gelöst und ca. 40 Zeilen Code eingespart :-)
Danke.
Gerson hat ja schon geschrieben wo ran er gerade arbeitet.
Dann tue ich das auch mal... Ich reimplementiere gerade
ein Projekt das ich zu vor in C++ gemacht hatte:
http://www.belug.info/%7Eor/data/freepriority/html_info/
Es stellte sich heraus, das die Code-pflege dermaßen
aufwendig war weil es sehr schwer ist das mit allen gcc-Versionen
und Distributionen zum laufen zu bekommen, das für mich
alleine zu fiel ist.
Aber ich wollte auch ein paar Diesigen-Fehler beseitigen. so
z.B. eine Server/Client-Lösung. Um die Geschwindigkeitsnachteile
von Python zu C++ zu kompensieren, werde ich versuchen soviel
Arbeit wie möglich auf Bibliotheken aus zu lagern. Deshalb
benutze ich diesmal auch eine richtige DB (PastgreSQL) in
Hintergrund.
MfG
Olaf
--
===================================================
"Meine Meinung steht fest. Bitte verwirren sie mich
nicht mit Tatsachen!"
Unbekannt.
===================================================
--
===================================================
"Meine Meinung steht fest. Bitte verwirren sie mich
nicht mit Tatsachen!"
Unbekannt.
===================================================
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Hallo,
in dem folgenden Programm bekomme ich nach ca. 7000 Rekursionsaufrufen
einen Speicherzugriffsfehler. Wer kann mir das bitte erklären? An
welcher Schraube kann ich drehen, um ihn zu verhindern?
Gruß
Hans Gubitz
import sys
def plus(zahl):
print 9000-zahl,
if zahl == 0:
return 0
else:
return 1 + plus(zahl-1)
sys.setrecursionlimit(10000)
print plus(9000)
--
Hans Gubitz <gubitz(a)netcologne.de>
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Ich experimentiere mit der Interaktion zwischen Python und C++ Code. Das
ganze gliedert sich in zwei Bereiche:
- Realisierung der Interaktion Python<>C++. Im Anhang findest du den
kompletten Sourcecode für pyfromc, ein C++ Programm, das Python aufruft
(guckst du "pyfromc.py") und umgekehrt von Python aus C++ (guckst du das
eingebaute cfrompy-Modul in pyfromc.cpp). (Windows-Only derzeit, brauchst du
DevStudio6 )
- Verpackung für den Setup. Ich habe es geschafft, den Pythoncode dann
soweit abzuspecken, daß mein Setup einen (unkomprimierten) Overhead von 1.5
mb hat, um pyfromc auszuliefern. Das ist akzeptabel (im Vergleich zu den
mehr als 9 mb des "richtigen" Installers. Ich denke, das ist auch für andere
interessant; deshalb bin ich dabei, eine Doku dafür zu schreiben & werde sie
dann auf meine Webseite stellen.
Ich habe noch folgende Probleme:
1) Seit 2.3 kann ich Module aus python23.zip importieren. Das Zipferl wird
allerdings in dem Pfad gesucht, in dem die python23.dll liegt.
Fallbeispiel a: ich installiere python23.zip und python23.dll in c:\foo auf
einem leeren System -> python23.zip wird korrekt angezogen
Fallbeispiel b: ich installiere python23.zip und python23.dll in c:\foo auf
meinem Entwicklerpc -> python23.zip wird in \winnt\system32 gesucht, weil da
die python23.dll liegt.
Die entsprechende Stelle im Python-Quellcode ist pc\getpathp.c, Zeile 465++
/* Calculate zip archive path */
if (dllpath[0]) /* use name of python DLL */
strncpy(zip_path, dllpath, MAXPATHLEN);
else /* use name of executable program */
strncpy(zip_path, progpath, MAXPATHLEN);
d.h. ich sehe auch nicht, wie man da einfach was umlenken kann. Ich möchte
möglichst alle module (z.b. auch os) aus dem Zipferl laden, das aber an
einer speziellen Stelle liegen soll; das Problem ist, daß ich das vor
Py_Initialize() einstellen müsste...
2) THREADS! Ich feiere im C++ Programm wilde Threadorgien; diese sollen den
Code aufrufen dürfen.
a) wenn ich nix mache, stürzt python ab (klar, keine Threadsynchronisation,
die muß ich leisten).
b) wenn ich den Aufruf wrappe wie folgt:
PyGILState_STATE s = PyGILState_Ensure();
pyValue = PyObject_CallObject(m_pyFunc, m_pyArgs);
PyGILState_Release(s);
geht gar nix (alle threads bleiben hängen).
c) wie mächte ich es richtig? Soll ich einfach auf meiner C++ Seite alle
Aufrufe in 'ne globale Semaphore stecken? Das kann es doch nicht wirklich
sein, oder?
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Hi!
Ich habe einen Thread der an einem Socket lauscht.
Bei der Initialisierung wird ein weiterer Thread
gestartet der den Timeout überwacht. Wenn auf den
Socket zulange gewartet wird, soll der zweite Thread
den ersten killen und dann sich selbst.
Mein Code funktioniert aber nicht. Die __del__ vom
ersten wird zwar aufgerufen aber die Sau will nicht
krepieren. :-{
MfG
Olaf
--
===================================================
"Meine Meinung steht fest. Bitte verwirren sie mich
nicht mit Tatsachen!"
Unbekannt.
===================================================
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
-----Weitergeleitete Nachricht-----
From: Olaf Radicke <olaf_rad(a)gmx.de>
To: hcz(a)hczim.de
Subject: Re: [Python-de] Tkinter/grid/linksbündig und Länge einer Liste
Date: 26 Oct 2003 16:23:49 +0100
Am Son, 2003-10-26 um 12.18 schrieb Heike C. Zimmerer:
> Olaf Radicke <olaf_rad(a)gmx.de> writes:
>
> > Hi!
> >
> > Ich möchte den Inhalt einer Spalte mit grid linksbündig
> > setzen. Geht das?
>
> widget.grid(sticky = W)
Ah! Und ich dachte ich hätte schon alles durch gehabt,
was an NSEW-Kombinationen möglich ist.
Danke.
MfG
Olaf
--
===================================================
"Meine Meinung steht fest. Bitte verwirren sie mich
nicht mit Tatsachen!"
Unbekannt.
===================================================
--
===================================================
"Meine Meinung steht fest. Bitte verwirren sie mich
nicht mit Tatsachen!"
Unbekannt.
===================================================
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Hallo,
ich möchte aus einem Bitmap den Hintergrund entfernen und ihn später
per Python-Script in definierten Farben setzen können.
Dazu habe ich mit Gimp in diesem Bild einen Alpha-Kanal gesetzt.
damit Teile des Bildes transparent gemacht und es im Format TIF ohne
Kompression gespeichert.
Leider war das aber schon das Ende der ganzen Aktion, da das Modul
Image den Typ dieses Bildes nicht mehr erkennen kann.
>>> alpha=Image.open('alpha.tif')
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/lib/python2.3/site-packages/PIL/Image.py", line 1571, in open
raise IOError("cannot identify image file")
IOError: cannot identify image file
>>>
Was nun?
Gruß
Hans Gubitz
--
Hans Gubitz <gubitz(a)netcologne.de>
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Hi!
Ich möchte den Inhalt einer Spalte mit grid linksbündig
setzen. Geht das?
das Andere was ich nicht gefunden habe ist, wie man
die Länge einer Liste ermittelt. Steht irgend wie nirgends
in meinen Büchern.
MfG
Olaf
--
===================================================
"Meine Meinung steht fest. Bitte verwirren sie mich
nicht mit Tatsachen!"
Unbekannt.
===================================================
_______________________________________________
Python-de maillist - Python-de(a)python.net
http://python.net/mailman/listinfo/python-de