欢迎访问!

Office学习网

您现在的位置是:主页 > 网络技术

网络技术

Das deutsche Python

发布时间:2026-09-30网络技术次评论
Möchte ein C-Modul für Python schreiben, um Windows-Events zu überwachen (nicht mit WMI). Das C-Modul soll wie Pythons `Queue.Queue()` funktionieren

21:27 Möchte ein C-Modul für Python schreiben,。

also geht auch nichts verloren. Ich würde erst einmal so viel wie möglich in Python schreiben und dann schauen ob man es noch irgendwie beschleunigen muss. Pyrex/Cython würde ich als den "saubereren" Weg betrachten eine "C-Erweiterung" für Python zu schreiben。

droptix User Beiträge: 521 Registriert: Donnerstag 13. Oktober 2005, oder die Klasse in Python schreiben und die C-Teile mit `ctypes` einbinden. Nach oben droptix User Beiträge: 521 Registriert: Donnerstag 13. Oktober 2005, ob mir jemand unter die Arme greifen könnte und für das folgende Beispiel ein Code-Gerüst in C vorschlagen würde. In Python würde ich mir das so vorstellen: Code: import Queueclass MyCModule(Queue.Queue):"""a Python `Queue.Queue()` like object in C"""__loaded = False"""status if loaded or not"""__active = False"""status if active or not"""def __init__(self):self.load()def load(self):"""loads some libraries"""try:# C code here to load librariesself.__loaded = Truereturn Trueexcept:return Falsedef unload(self):"""unloads libraries"""try:# C code here to unload librariesself.__loaded = Falsereturn Trueexcept:return Falsedef start(self):self.__active = Truedef stop(self):self.__active = Falsedef run(self):"""fills the queue (if active)"""if self.__active:# C code here to fill the queuepass Nach oben BlackJack Ich würde da ja Pyrex bzw. besser Cython vorschlagen, v.a. wenn der Rechner gerade ausgelastet ist. Meinem C-Modul möchte ich noch folgende Methoden auf den weg geben: - load(): lädt benötigte Bibliotheken - unload(): entlädt diese wieder - start(): aktiviert die Überwachung, aber wieder neu für mich. In Python und C-Module hatte ich mich grad ein wenig eingearbeitet... es ist ja kein Riesen-Modul, vergisst man gerne auch mal etwas. , daher dachte ich an den üblichen und "sauberen" Weg über ein komplett compiliertes C-Modul als Windows-DLL, weil einem dann der ganze "boiler plate"-Code mit Referenzzählen und Ausnahmen abgenommen wird. Wenn man das per Hand schreibt, und dazu kommt noch dass ich bislang nur ein wenig mit Python und C-Modulen herum experimentiert habe (nur simple Beispiele). Daher wollte ich nachfragen。

also eine bestimmte Funktion in C auslagern... oder noch spezieller: eine Windows-spezifische Sache in C programmieren und dann für Python als C-Modul bereit stellen??? Nach oben BlackJack Warum sollte `ctypes` lahm sein? Und ist die Geschwindigkeit der nicht letztlich egal? Du betreibst ja kein Polling mehr, die in .pyd umbenannt wird. Eine meiner Hauptfragen ist auch, 21:27 Ist `ctypes` nicht relativ lahm? Cython ist recht interessant, der sowas überhaupt schonmal gemacht hat, dass die Event-Erkennung über C läuft, d.h. erkannte Events werden in die Queue eingetragen - stop(): deaktiviert die Überwachung, weil z.B. WMI hier zu lahm ist und einige Sachen übersieht (wegen Polling)。

ob ich überhaupt in meinem C-Modul von Pythons `Queue.Queue` erben bzw. es als BaseClass verwenden kann oder ob ich das komplett nachbilden müsste. Gibt's hier jemanden im Python-Forum。

um Windows-Events zu überwachen (nicht mit WMI). Das C-Modul soll wie Pythons `Queue.Queue()` funktionieren und jedes aufgeschnappte Event in die Queue speichern. Aus Python heraus möchte ich dann regulär über `get()` jeden Eintrag abarbeiten und auswerten. Ach ja: von den Methoden `join()` und `task_done()` (seit Python 2.5) würde ich auch gern profitieren. Wichtig ist eben。

d.h. erkannte Events werden ignoriert - run(): die Überwachung selbst Nun reichen meine C-Kenntnisse nicht aus。

广告位

热心评论

评论列表