Fehlermeldung wenn Python nicht unter C:\ installiert ist?

Fragen zu Tkinter.
Antworten
thomasgull
User
Beiträge: 48
Registriert: Samstag 2. Februar 2013, 18:52

Hallo zusammen

Mein Messprogramm hat ein Script-Tool das jedoch nicht direkt unter C:Python yx installiert ist.

Python ist Version 2.6.5
Betriebssystem Win XP SP3

ich bekommen folgende Fehlermeldung wenn ich den Script aufrufe:

Traceback (most recent call last):
File "C:\Dokumente und Einstellungen\All Users\Dokumente\ServiceLab\12.0.0\ger\other\script\tmp\PScript00.py", line 24, in <module>
x=Info(txt,title)
File "C:\Dokumente und Einstellungen\All Users\Dokumente\ServiceLab\12.0.0\ger\other\script\tmp\PScript00.py", line 14, in Info
root= Tk();
File "C:\Programme\ServiceLab 12.0\python\lib\lib-tk\Tkinter.py", line 1638, in __init__
baseName = os.path.basename(sys.argv[0])
AttributeError: 'module' object has no attribute 'argv'


Folgender Programmcode ist in den Umliegnden Zeilen:



if baseName is None:
import sys, os
baseName = os.path.basename(sys.argv[0])
baseName, ext = os.path.splitext(baseName)
if ext not in ('.py', '.pyc', '.pyo'):
baseName = baseName + ext
interactive = 0
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)

Hat der Verweis auf os.path. xy die Ursache, weil der Pfad nicht wie gewohnt unter C: liegt?

oder was könnte die Ursache sein?

grüsse

Thomas
Zuletzt geändert von thomasgull am Sonntag 19. Mai 2013, 17:56, insgesamt 1-mal geändert.
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

Hast Du zufällig eine Datei sys.py oder sys.pyc in dem Ordner, wo Dein Skript liegt, rumfliegen? Diese müsstest Du umbennen.
Mit os.path hat dein Problem nichts zu tun. Ansonsten bitte Code in [ python ] [/ python ] Blöcke verpacken (ohne Leerzeichen zwischen den eckigen Klammern).
Und bedeutet nicht der letzte Abschnitt der Fehlermeldung, dass dieser Code so in Tkinter.py steht? :shock: Das wäre ja wirklich komisch! Und warum benutzt du _tkinter?
thomasgull
User
Beiträge: 48
Registriert: Samstag 2. Februar 2013, 18:52

im ganzen Python Ordner gibt es kein sys.Py()
thomasgull
User
Beiträge: 48
Registriert: Samstag 2. Februar 2013, 18:52

also der ganze Programmteil lautet:

Code: Alles auswählen

from Tkinter import *

def Info(txt1,txt2):

   

    root= Tk();

    root.title('Toplevel')

    Label(root,text=(txt1)).pack(pady=10)
    Label(root,text=(txt2)).pack(pady=10)
    root.mainloop()

txt="Meldung21"
title="Motorstörung"
x=Info(txt,title)

wie gesagt unter Py27 läft es und
wenn ich es im Messprogramm unter Py 2.6.5
aufrufe kommt die Fehlermeldung

habe ich da was übersehen?
Zuletzt geändert von Anonymous am Sonntag 19. Mai 2013, 18:24, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

thomasgull hat geschrieben:Betreff: Fehlermeldung wenn Python nicht unter C:\ installiert ist?
nomnom hat geschrieben:Hast Du zufällig eine Datei sys.py oder sys.pyc in dem Ordner, wo Dein Skript liegt, rumfliegen? Diese müsstest Du umbennen.
Mit os.path hat dein Problem nichts zu tun. Ansonsten bitte Code in [ python ] [/ python ] Blöcke verpacken (ohne Leerzeichen zwischen den eckigen Klammern).
Und bedeutet nicht der letzte Abschnitt der Fehlermeldung, dass dieser Code so in Tkinter.py steht? :shock: Das wäre ja wirklich komisch! Und warum benutzt du _tkinter?

also von mir aus sehe ich es auch so das es in Tkinter.py liegt, der ganze script läuft jedoch auf einem anderen Rechner direkt unter c:\Python 27 also Python 2.7

wieso meinst du Benutzen von tkinter?
Du solltest Deine Skripte natürlich nicht wie Module benennen, da Du diese dann nicht verwenden kannst.
Warum benutzt du _tkinter und nicht Tkinter? Schreibst du das Tkinter-Modul um?

Edit: Verwende Python-Tags, da sonst keine Einrückung ersichtlich ist. Es gibt einen "Bearbeiten"-Button.
Edit #2: Der Code, den du gepostest hast, ist also gar nicht Deiner, sondern kommt aus dem Modul... Jetzt versteh ichs.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@thomasgull:
versuch mal

Code: Alles auswählen

root = Tk(baseName='irgendwas');
thomasgull
User
Beiträge: 48
Registriert: Samstag 2. Februar 2013, 18:52

Danke sieht schon viel besser aus. Genaueren grund dafür?

Danke nochmals
BlackJack

@thomasgull: Wenn das Argument nicht angegeben wird, versucht `Tkinter` den Wert aus `sys.argv` zu bilden. Und das Attribut scheint es bei dem in der Anwendung eingebetteten Python bei Dir nicht zu geben.
thomasgull
User
Beiträge: 48
Registriert: Samstag 2. Februar 2013, 18:52

Danke vielmals,
sorry ich wollte nur den grund wissen

Danke
Antworten