AttributeError: 'module' object has no attribute 'argv'

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
iPanic
User
Beiträge: 3
Registriert: Mittwoch 20. Februar 2008, 13:25

Mittwoch 20. Februar 2008, 14:10

Hallo,

Hab mich bisher immer via suche und co durch gerungen ... jetzt aber weis
ich nicht was ich machen soll, vielleicht könnt ihr mir helfen.

Beim ausführen des folgen codes

Code: Alles auswählen

import sys

print "You are running",sys.argv[0]

kommt folgender fehler:

Code: Alles auswählen

Traceback (most recent call last):
  File "python\bf2\__init__.py", line 4, in ?
    print "You are running",sys.argv[0]
AttributeError: 'module' object has no attribute 'argv'
Ich vermute das Problem darin das, daß sys Modul nicht komplett vorhanden ist .... jetzt wollt ich wissen ob ich argv irgendwie per "hand" einfügen kann?

Der Sinn dahinter ist ich übergebe einer Funktion als Parameter den Namen der Datei die die Funktion ausführt.

Ideen?

Danke.
BlackJack

Mittwoch 20. Februar 2008, 14:21

Das `__file__`-Attribut von Modulen benutzen?

Wenn es sich um einen eingebetteten Interpreter handelt (gehe ich mal wegen dem "bf2" im Pfadnamen im Traceback von aus), dann gibt's ja kein `sys.argv`, weil die Module nicht als Programm aufgerufen wurden.
iPanic
User
Beiträge: 3
Registriert: Mittwoch 20. Februar 2008, 13:25

Mittwoch 20. Februar 2008, 14:35

du meinst sicher das os.path.split(__file__) .... selbes problem ...

ach ... und einige sys Funktionen sind jedoch vorhanden .... nur nicht alle habe ich das Gefühl ..
Zuletzt geändert von iPanic am Mittwoch 20. Februar 2008, 14:38, insgesamt 1-mal geändert.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 20. Februar 2008, 14:37

Hallo iPanic, willkommen im Forum,

was meinst du? Existiert ``os.path`` nicht oder ``__file__``. Du hast uns auch noch nicht erzählt, ob das tatsächlich der in BF2 eingebettete Interpreter ist.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
iPanic
User
Beiträge: 3
Registriert: Mittwoch 20. Februar 2008, 13:25

Mittwoch 20. Februar 2008, 14:43

sorry, ist ein eingebetteter Interpreter (bf2)

bei os.path kommt folgendes:

Code: Alles auswählen

Traceback (most recent call last):
  File "python\bf2\__init__.py", line 4, in ?
    print "You are running",os.path.split(__file__) 
AttributeError: 'module' object has no attribute 'path'


Ist es nicht möglich diese Module selbst zu importen ? .... muss das vom Interperter kommen ?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 20. Februar 2008, 15:20

Du musst natürlich ``import os.path`` machen, sonst geht das nicht. Aber das ist auch gar nicht die Frage. Geht denn ``__file__``?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Mittwoch 20. Februar 2008, 18:23

Nein er muss nicht ``import os.path`` machen, `os.path` sollte automatisch da sein, wenn man ``os`` importiert hat. Die Fehlermeldung sagt ja, dass `os` kein Attribut `path` hat, also ist `os` ja schon importiert worden.

So ein ähnliches Problem hatten wir doch neulich schon einmal. Ich würde sagen bf2 bringt einfach keine komplette Standardbibliothek mit.
Antworten