
Zugang zu USB über Python
-
- User
- Beiträge: 670
- Registriert: Sonntag 15. Januar 2006, 18:42
- Wohnort: Celle
- Kontaktdaten:
Toni83, bevor Du Dich fragst, wo der Code bleibt: ich hab erst jetzt am Wochenende wirklich Zeit gefunden mich dranzusetzen; ich werd schauen, dass ich morgen mittag mal ein kleines Beispielscript poste, was die Funktionalität deines Benutzungsskriptes dupliziert. Solange bitte noch gedulden, ich habs nicht vergessen. 

--- Heiko.
Ich schätze mal, dass modelnine leider keine Zeit findet um eine Beispielsource zu senden. Habe jetzt SWIG installiert. Habe ein einfacheres Programm geschrieben, es funktioniert aber leider nicht...
Warum? weiss ich auch nicht!
Code:
example.c:
example.i:
Bin dann auf der Eingabeaufforderung fortgefahren:
swig -python -c++ example.i
c++ -c example.c -I/usr/local/include/python2.3
c++ -shared example.o -o _example.so
Nachdem sollte mit import example die ursprüngliche C-Source in Python vorhanden sein. Stattdessen kommt die Fehlermeldung:
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "example.py", line 5, in ?
import _example
ImportError: No module named _example
Kann mir jemand das bitte erklären?
Gruss,
Toni
Warum? weiss ich auch nicht!
Code:
example.c:
Code: Alles auswählen
/* File : example.c */
#include <time.h>
double My_variable = 3.0;
int fact (int n) {
if (n <= 1) return 1;
else return n*fact(n-1);
}
int my_mod(int x, int y) {
return (x%y);
}
char *get_time()
{
time_t ltime;
time(<ime);
return ctime(<ime);
}
Code: Alles auswählen
/* example.i */
%module example
%{
/* Put header files here or function declarations like below */
extern double My_variable;
extern int fact(int n);
extern int my_mod(int x, int y);
extern char *get_time();
%}
extern double My_variable;
extern int fact(int n);
extern int my_mod(int x, int y);
extern char *get_time();
swig -python -c++ example.i
c++ -c example.c -I/usr/local/include/python2.3
c++ -shared example.o -o _example.so
Nachdem sollte mit import example die ursprüngliche C-Source in Python vorhanden sein. Stattdessen kommt die Fehlermeldung:
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "example.py", line 5, in ?
import _example
ImportError: No module named _example
Kann mir jemand das bitte erklären?
Gruss,
Toni
Habe jetzt die ganze letzte Zeit mit dem wrappen zugebracht. Leider ohne Erfolg. Scheint aus meiner Sicht irgendwie nicht möglich meinen Code zu wrappen.
Habe dann daraufhin eine .dll aus meiner C-Datei mit VC++ 6.0 erstellt und diese dann mit ctypes aus Python heraus aufgerufen. Geht ganz schnell und unkompliziert im Gegensatz zum wrappen.
Falls es jemanden interessiert wie dies geht, dem kann ich das vorgehen dann an dieser Stelle posten.
Gruss,
Toni
Habe dann daraufhin eine .dll aus meiner C-Datei mit VC++ 6.0 erstellt und diese dann mit ctypes aus Python heraus aufgerufen. Geht ganz schnell und unkompliziert im Gegensatz zum wrappen.
Falls es jemanden interessiert wie dies geht, dem kann ich das vorgehen dann an dieser Stelle posten.
Gruss,
Toni