Grr......leider schweigt sich die Python-Doku dazu aus aber anscheinend wurde da was geändert.
Ich will aus C ein Python-Modul öffnen, Dazu muss ich den Suchpfad um das aktuelle Verzeichnis erweitern, aber ich weiß nicht wie.
Hier http://www.python-forum.de/viewtopic.ph ... 41d5a5f3af wurde ja schon eine Lösung präsentiert, aber leider hilft diese mir nicht weiter, da der Suchpafd nur auf das aktuelle Verzeichnis gesetzt wird, aber ich benötige das aktuelle Verzeichnis ZUSÄTZLICH.
Ist das echt so schwierig?
Suchpfad erweitern seit Python 3.1
Hat denn dazu wirklich keiner eine Idee. Die Python-Leute können doch nicht do dumm sein und nur an einer einzigen Stelle diesen Datentyp verwenden. Wie komme ich denn ohne C++ zu verwenden von char* nach wchar_t* und umgekehrt??
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Deine zwei Posts passen irgendwie nicht zusammen...
Hi,
vielleicht nicht offensichtlich, aber ich werde das Problem dann vielleicht noch mal spezifizieren.
Also ich hatte bisher mit Py_GetPath() den Pfad als char* geholt und an diesen "String" meinen zusätzlichen Pfad angehängt, da ich keine Möglichkeit kenne wie man den Pfad sonst erweitern kann (aus dem C-Programm). Dann habe ich den neu zusammengesetzten String per PySys_SetPath(neuerString) gesetzt und hatte den korrekten Pfad, sodass ich mein Modul importieren kann.
Seit Python3 nimmt PySys_SetPath() und gibt Py_GetPath() einen wchar* statt einen "normalen" char*. Jetzt klappt also mein String-Anhänge-Algorithmus nicht mehr da dieser nur mit char* arbeitet.
Das Problem ist, dass ich nicht weiss wie ich an einen String des Typs wchar* eine Zeichenreihe anhänge ;(
vielleicht nicht offensichtlich, aber ich werde das Problem dann vielleicht noch mal spezifizieren.
Also ich hatte bisher mit Py_GetPath() den Pfad als char* geholt und an diesen "String" meinen zusätzlichen Pfad angehängt, da ich keine Möglichkeit kenne wie man den Pfad sonst erweitern kann (aus dem C-Programm). Dann habe ich den neu zusammengesetzten String per PySys_SetPath(neuerString) gesetzt und hatte den korrekten Pfad, sodass ich mein Modul importieren kann.
Seit Python3 nimmt PySys_SetPath() und gibt Py_GetPath() einen wchar* statt einen "normalen" char*. Jetzt klappt also mein String-Anhänge-Algorithmus nicht mehr da dieser nur mit char* arbeitet.
Das Problem ist, dass ich nicht weiss wie ich an einen String des Typs wchar* eine Zeichenreihe anhänge ;(
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Laut meinem Büchlein "C - kurz & gut" sollten die String Funktionen für wchars in wchar.h zu finden sein. Damit sollte es eine wchar *wcsncat() Funktion geben (als Pendant zu char * strncat()).Maple99 hat geschrieben: Seit Python3 nimmt PySys_SetPath() und gibt Py_GetPath() einen wchar* statt einen "normalen" char*. Jetzt klappt also mein String-Anhänge-Algorithmus nicht mehr da dieser nur mit char* arbeitet.
Das Problem ist, dass ich nicht weiss wie ich an einen String des Typs wchar* eine Zeichenreihe anhänge ;(
Oh man du hast recht, aber entweder ich bin zu blöd zwei Parameter zu übergeben oder meine Kiste will mich hier heute fertig machen. Ich bekomme immer ein SegFault, wenn ich kopieren oder konkatenieren will ;(
Hast du da noch einmal einen Tip. Selbst dieses einfaches Beispiel schläge fehl.
int main(int argc, char ** argv) {
wchar_t * s1 = L"str1\0";
wchar_t * s2 = L"str2\0";
wcscpy(s1, s2);
return 0;
}
Hast du da noch einmal einen Tip. Selbst dieses einfaches Beispiel schläge fehl.
int main(int argc, char ** argv) {
wchar_t * s1 = L"str1\0";
wchar_t * s2 = L"str2\0";
wcscpy(s1, s2);
return 0;
}