Guten Tag allen miteinander,
Ich habe ein Programm geschrieben (Einen Vokabeltrainer) welches mit dem os Modul und dem json Modul Datein/Ordner Erstellen kann. Wenn ich es aber cx_Freeze, hat ein Benutzer das Problem das er Fehler wie "AtributeError: 'NoneType' object has no attribute 'write'" oder "Original Exception: (5, 'Zugriff verweigert', '*ZU ERSTELLENDER ORDNERNAME')" bekommt wenn er das Programm nicht als Admin ausführt. Woran liegt das? Lässt sich das beheben?
Vielen Dank
Gruß
cx_Freeze - Kein zugriff auf's Dateisystem
-
- User
- Beiträge: 107
- Registriert: Sonntag 24. Juni 2012, 16:38
- Wohnort: Werder/Havel
Besucht mich auf http://scriptinggamer.de.cg/
Man mag es nicht glauben, aber Windows hat seit geraumer Zeit tatsächlich eine Benutzerverteilung. Und wenn dein Anwender das Programm nur als Administrator richtig ausführen kann, dann will es offensichtlich einen Ordner an einer Stelle erstelle, wo es einem "normalen" Benutzer nicht erlaubt ist. Sprich, ihm fehlen die Rechte.
Die _genaue_ Fehlermeldung und der entsprechende Quellcode würden helfn das Problem zu analysieren. "*ZU ERSTELLENDER ORDNERNAME" geht glaube ich unter Windows nicht, weil kein * im Ordnernamen stecken darf.
Die _genaue_ Fehlermeldung und der entsprechende Quellcode würden helfn das Problem zu analysieren. "*ZU ERSTELLENDER ORDNERNAME" geht glaube ich unter Windows nicht, weil kein * im Ordnernamen stecken darf.
-
- User
- Beiträge: 107
- Registriert: Sonntag 24. Juni 2012, 16:38
- Wohnort: Werder/Havel
Das * und die Großbuchstaben sollen nur darauf hinweisen, dass dort ein belieger Name stehen kann, in diesem Fall steht da "vocabulary".
Die entsprechenden Stellen im Code sind:
os.mkdir("vocabulary")
und json.dumb()
Kann mein Anwender also ohne einem Programm Adminrechte zu verleihen garkeine Programme benutzen die Datein schreiben? Wie kann man einem Programm das Recht geben Datein zu schreiben ohne gleich volle Administratoren rechte zu verteilen?
Hab in der Hinsicht nicht soviel Ahnung
Danke für die schnelle Antwort
Gruß
Die entsprechenden Stellen im Code sind:
os.mkdir("vocabulary")
und json.dumb()
Kann mein Anwender also ohne einem Programm Adminrechte zu verleihen garkeine Programme benutzen die Datein schreiben? Wie kann man einem Programm das Recht geben Datein zu schreiben ohne gleich volle Administratoren rechte zu verteilen?
Hab in der Hinsicht nicht soviel Ahnung
Danke für die schnelle Antwort
Gruß
Besucht mich auf http://scriptinggamer.de.cg/
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Lass mich raten: Ohne cx_freeze laeuft es? Lass dir mal `os.getcwd()` ausgeben und versuche mal einen absoluten Pfad fuer das Verzeichnis.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
-
- User
- Beiträge: 107
- Registriert: Sonntag 24. Juni 2012, 16:38
- Wohnort: Werder/Havel
Ich glaube es liegt daran da ich den Ordner direkt im installationverzeichniss erstelle, da gibt es doch so einen %appdata% ordner, is der für sowas da? (in dem ordner sollen dann die Vokabeln für das Programm gespeichert werden)
Gruß
Gruß
Besucht mich auf http://scriptinggamer.de.cg/
-
- User
- Beiträge: 107
- Registriert: Sonntag 24. Juni 2012, 16:38
- Wohnort: Werder/Havel
Dafür könnte ich dann os.environ['APPDATA'] benutzen, sollte ich das tun?
Gruß
Gruß
Besucht mich auf http://scriptinggamer.de.cg/