Seite 1 von 1

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

Verfasst: Mittwoch 20. Februar 2008, 14:10
von iPanic
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.

Verfasst: Mittwoch 20. Februar 2008, 14:21
von BlackJack
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.

Verfasst: Mittwoch 20. Februar 2008, 14:35
von iPanic
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 ..

Verfasst: Mittwoch 20. Februar 2008, 14:37
von Leonidas
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.

Verfasst: Mittwoch 20. Februar 2008, 14:43
von iPanic
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 ?

Verfasst: Mittwoch 20. Februar 2008, 15:20
von Leonidas
Du musst natürlich ``import os.path`` machen, sonst geht das nicht. Aber das ist auch gar nicht die Frage. Geht denn ``__file__``?

Verfasst: Mittwoch 20. Februar 2008, 18:23
von BlackJack
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.