Seite 1 von 1

Code funktioniert beim ersten Run, aber nicht bei weiteren Ausführungen

Verfasst: Montag 2. September 2019, 22:02
von 3000
Ich habe ein kleines Python-Skript, das meine aktuelle IPv4-DNS-Serveradresse überprüft. Es funktioniert gut. Ich benutze das wmi-Paket.

Mein Script:

Code: Alles auswählen

import wmi
nic_configs = wmi.WMI().Win32_NetworkAdapterConfiguration(IPEnabled=True);
nic = nic_configs[0];
dns = nic.DNSServerSearchOrder[0];
Nun: Ich benutze dieses Skript in Kodi. Und beim ersten Mal läuft es perfekt. Aber ab dem zweiten Mal bekomme ich einen seltsamen Fehler (siehe unten).

Warum funktioniert mein Code beim ersten Mal, aber nicht bei den folgenden Versuchen?

Hat das was damit zutun, dass import wmi jedes Mal neu läuft?

Fehler:

Code: Alles auswählen

Error Type: <type 'exceptions.AttributeError'>
Error Contents: 'NoneType' object has no attribute 'platform'
Traceback (most recent call last):
File "C:\Python\Lib\site-packages\mytest.py", line 22, in <module>
import wmi
File "C:\Python\Lib\site-packages\wmi.py", line 88, in <module>
from win32com.client import GetObject, Dispatch
File "C:\Python\Lib\site-packages\win32com\__init__.py", line 6, in <module>
import pythoncom
File "C:\Python\Lib\site-packages\pythoncom.py", line 3, in <module>
pywintypes.__import_pywin32_system_module__("pythoncom", globals())
File "C:\Python\Lib\site-packages\pywintypes.py", line 20, in __import_pywin32_system_module__
if not sys.platform.startswith("win32"):
AttributeError: 'NoneType' object has no attribute 'platform'
-->End of Python script error report<--

Re: Code funktioniert beim ersten Run, aber nicht bei weiteren Ausführungen

Verfasst: Montag 2. September 2019, 23:37
von __blackjack__
@3000: Irgendetwas scheint da mit den Python-Modulen komische Sachen machen. Der einzige Weg wie das `sys`-Modul auf ”legalem” Weg den Wert `None` haben kann ist beim beenden von Python, wenn nach und nach alle Objekte abgeräumt werden, und dann eben auch die Module.

Die Semikolons an den Zeilenenden machen übrigens keinen Sinn. Das ist Python und nicht C oder Java. In Python schliesst das die Anweisung nicht ab, sondern trennt Anweisungen in der gleichen Zeile voneinander. Da ist aber nur jeweils eine (sinnvolle) Anweisung in jeder Zeile. Getrennt von der leeren Anweisung.

Re: Code funktioniert beim ersten Run, aber nicht bei weiteren Ausführungen

Verfasst: Dienstag 3. September 2019, 00:02
von 3000
was heißt das jetzt?

Re: Code funktioniert beim ersten Run, aber nicht bei weiteren Ausführungen

Verfasst: Dienstag 3. September 2019, 09:50
von __deets__
Das da was kaputt ist. Das ist kein "normaler" Programmierfehler. Sondern irgendwer pfuscht da im Interpreter auf unheilige Art und Weise rum. Da kann man so halt sonst nix zu sagen. Ich wuerde das den Leuten von Kodi mitteilen.

Und mit dem mehrfachen import wmi hat das im uebrigen nix zu tun, das wird von Python problemlos gehandhabt.

Re: Code funktioniert beim ersten Run, aber nicht bei weiteren Ausführungen

Verfasst: Dienstag 3. September 2019, 11:46
von 3000
ok, danke für die Info!