In 2.3.4? os.popen ...
Sorry, aber eine Idee habe ich noch: Was steht in dem \game-Ordner ?
Problem mit os.py
Hm. ok. Aber das hilft mir auch nicht direkt weiter. Ich muss einfach noch weitere module in BF2 importieren. Aber meistens brauchen die Module das os modul xD. Und da kommt das hier:
File "mods/reloaded/python\game\test.py", line 3, in ?
import zipfile
File "mods/reloaded/python\game\zipfile.py", line 3, in ?
import struct, os, time
File "mods/reloaded/python\game\os.py", line 25, in ?
_names = sys.builtin_module_names
NameError: name 'sys' is not defined.
Ich hab hier mal testweise zipfile.py importiert (import zipfile).
Aber zur ersten frage: Wie definier ich das betriebsystem??
File "mods/reloaded/python\game\test.py", line 3, in ?
import zipfile
File "mods/reloaded/python\game\zipfile.py", line 3, in ?
import struct, os, time
File "mods/reloaded/python\game\os.py", line 25, in ?
_names = sys.builtin_module_names
NameError: name 'sys' is not defined.
Ich hab hier mal testweise zipfile.py importiert (import zipfile).
Aber zur ersten frage: Wie definier ich das betriebsystem??
Nochmal zur ersten Frage: Wieso steht da z. B. "mods/reloaded/python\game\zipfile.py"? Wieso setzt sich der Pfad so zusammen? Auf Windows müßte es doch *nur* '\' geben, oder?
edit: Nur damit Du weißt, das ich Deine Frage nicht ignoriere: Es gilt nicht das Betriebssystem zu ermitteln, sondern Python in die Lage zu versetzen das selbstständig zu tun.
edit: Nur damit Du weißt, das ich Deine Frage nicht ignoriere: Es gilt nicht das Betriebssystem zu ermitteln, sondern Python in die Lage zu versetzen das selbstständig zu tun.
Ich weis auch nicht wieso der BF2 debugger das mit / und \ schreibt. Aber auf jedenfall klappt es. Aber ich muss die Betriebsystem abfrage abstellen. Sonst geht da überhaupt nix. os.py muss/soll das betriebssystem nicht abfrage. Das betriebsystem ist immer (IMMER) "nt" (XP/2000). Er soll einfach nur os.system ("exe.exe") ausführen. Ginge es eigentlich noch einfacher, wenn ich nur os.system definiere (leider ka wie).
P.s.: @ CM das du meine frage nicht ignorierst, merke ich an deinen super schnellen und zahlreichen antworten
P.s.: @ CM das du meine frage nicht ignorierst, merke ich an deinen super schnellen und zahlreichen antworten
*duck* Kann man os.py etc. einfach in das \games-Directory kopieren?*duck*
hab ich schon gemacht. Aber dann kommt die fehler meldung, die ich im ersten post geschrieben hab. Er erkennt einfach das betriebsystem nicht. Am einfachsten währe es, wenn ich os.sytstem definieren würde. Kann mir hier einer helfen?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Du kannst "os.system" nicht definieren, da es eine Funktion des os-Moduls ist. D.h. du musst die Funktion also reimplementieren. Und das ist nichttrivial, dazu könntest du ctypes verwenden um die Win32 API-Funktion CreateProcess aufzurufen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Also Battlefield 2 hab ich nicht, sondern BF2142. Dort liegt im root Verzeichnis ein Zip File mit dem Namen pylib2.3.4.zip in diesem File finde ich unter anderem auch das os-modul. Ist das bei BF2 auch so aufgebaut?
Hast du auch ein solches File?
Ich hab nun keine Ahnung (und auch nicht das große Interesse) wie man mit dem eingebauten Pythoninterpreter von BF rumspielen kann um zu testen ob das hier geht.
Ich denke mal das es ansonsten ne gute Idee wäre in der BF2 Community rumzuhorchen. Kann mir kaum vorstellen das nicht schonmal irgendwelche Modder erweiterte Funktionalität eingebaut haben.
Hast du auch ein solches File?
Ich hab nun keine Ahnung (und auch nicht das große Interesse) wie man mit dem eingebauten Pythoninterpreter von BF rumspielen kann um zu testen ob das hier geht.
Ich denke mal das es ansonsten ne gute Idee wäre in der BF2 Community rumzuhorchen. Kann mir kaum vorstellen das nicht schonmal irgendwelche Modder erweiterte Funktionalität eingebaut haben.
pylib2.3.4.zip -> richtig. Ich hätte nie daran gedacht. Ich teste jetzt mal ob es geht. (Bf2142 ist eigentlich nur ein gemodetes bf2xD)
THXTHXTHX Für den tip.....
MfG Krauzi
EDIT: Ich hab jetzt mal das module zipfile importiert. Da kommt immer dieser fehler:
File "mods/reloaded/python\game\test.py", line 1, in ?
import zipfile
File "pylib-2.3.4.zip\zipfile.py", line 4, in ?
ImportError: No module named binascii
Edit2: Wenn ich os.py in die lib.zip von BF2 kopier, kommt immer :
'module' object has no attribute 'system'
THXTHXTHX Für den tip.....
MfG Krauzi
EDIT: Ich hab jetzt mal das module zipfile importiert. Da kommt immer dieser fehler:
File "mods/reloaded/python\game\test.py", line 1, in ?
import zipfile
File "pylib-2.3.4.zip\zipfile.py", line 4, in ?
ImportError: No module named binascii
Edit2: Wenn ich os.py in die lib.zip von BF2 kopier, kommt immer :
'module' object has no attribute 'system'
Kann keiner helfen?