Hallo,
ich habe sehr wenig Ahnung von Pyton, höchstens von der Syntax her, die auch an anderen Stellen verwendet wird.
Nun will ich MQTT Daten in eine Datenbank schreiben. Dazu habe ich im Netz zwei Python Projekte gefunden. Und da mir Python sympatisch ist, will ich es damit versuchen. Zumal der Microsoft SQL Server 2017 auch native Python unterstützt und ich dachte, dass ich da vielleicht letztendlich ein Python Skript auch direkt aus dem SQL Server heraus aufrufen kann, um dann die Daten aus einem MQTT Broker in eine Datenbank zu schreiben.
Im Moment bekomme ich aber nicht einmal die Original-Python-Skripte zum laufen.
Beide arbeiten im Code mit
import paho.mqtt.client as mqtt
Wenn ich die Skripte laufen lasse, bekomme ich immer
ModuleNotFoundError: No module named 'paho'
Dann habe ich diese Seite gefunden:
https://pypi.org/project/paho-mqtt/
und es mit
pip install paho-mqtt
versucht, es wird auch etwas installiert. Aber die Skripte mit import paho... rufen immer noch den gleichen Fehler hervor.
Obwohl auf dieser Website ein Beispielcode enthalten ist, auch mit
import paho.mqtt.client as mqtt
Python habe ich zum einen über den Windows Store geholt und auch irgendwann mal direkt installiert. Was genau aufgerufen wird, wenn ich ein Python Skript in der Windows Kommandozeile aufrufe, weiß ich nicht. Könnte man aber vielleicht an der Verzeichnis-Angabe weiter unten verstehen.
Wenn ich
pip install paho-mqtt
noch mal ausführe, kommt nämlich eine Meldung, dass das Ding schon da ist:
D:\Git_Repositories\Stromzaehler\MQTT\sql-logger\sql-logger>pip install paho-mqtt
Requirement already satisfied: paho-mqtt in c:\users\ggoer\appdata\local\packages\pythonsoftwarefoundation.python.3.7_qbz5n2kfra8p0\localcache\local-packages\python37\site-packages (1.4.0)
You are using pip version 19.0.3, however version 19.2.3 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
Den unteren Teil, also ein pip upgrade von 19.0.3 auf was aktuelles habe ich auch versucht, da fehlen dann aber Rechte. Ist jetzt hoffentlich auch nicht so tragisch.
Aber warum funktioniert das mit dem import ... nicht? und zwar in zwei verschiedenen Projekten, wo das verwendet wird?
Kann das ein Problem in meiner Installation sein oder im Modul?
Gibt es eine bessere Möglichkeit, die Python-Skripte auszuführen?
pip install paho-mqtt - aber import paho.mqtt.client as mqtt funktioniert nicht
Ja, ich habe wohl diverse Versionen auf meinem Rechner
"C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python.exe"
"C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python.exe"
noch Python als Windows-App aus dem Windows Store.
Außerdem habe den SQL Server 2017 mit eingebautem Python-Support installiert, und weil das Setup wegen Kaspersky Antivirus nicht funktionierte, auch noch
Machine Learning Server 9.4.7 for Windows
installiert.
Der Aufruf der Python Skripte erfolgt über die Kommandozeile direkt aus dem Verzeichnis, wo die Skripte liegen.
Wie man die Skripte aus dem Python-Fenster aufrufen kann, dass sich öffnet, wenn man eine der verschiedenen Python-Installationen öffnet, weiß ich nicht. Ich habe keine Ahnung, wie ich von da zu den Ordnern navigieren kann, in denen die Skripte liegen.
Gibt es da eine kurze und brauchbare Anleitung für Python-Einsteiger?
"C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python.exe"
"C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python.exe"
noch Python als Windows-App aus dem Windows Store.
Außerdem habe den SQL Server 2017 mit eingebautem Python-Support installiert, und weil das Setup wegen Kaspersky Antivirus nicht funktionierte, auch noch
Machine Learning Server 9.4.7 for Windows
installiert.
Der Aufruf der Python Skripte erfolgt über die Kommandozeile direkt aus dem Verzeichnis, wo die Skripte liegen.
Wie man die Skripte aus dem Python-Fenster aufrufen kann, dass sich öffnet, wenn man eine der verschiedenen Python-Installationen öffnet, weiß ich nicht. Ich habe keine Ahnung, wie ich von da zu den Ordnern navigieren kann, in denen die Skripte liegen.
Gibt es da eine kurze und brauchbare Anleitung für Python-Einsteiger?
Ich werde mir jetzt mal anschauen, wie ich Python in Visual Studio verwenden kann, mit VS arbeite ich sowieso ständig (Datenbanken, SSAS, SSIS, ...), vielleicht komme ich da auch mit Python klar 
Und da werden mir schon 4 verschiedene Python Environments angezeigt: Anaconda 5.2.0, Machine Lerning Server 4.5.12.0, Python 3.6, Python 3.7
Vielleicht ist das für mich ein guter Startpunkt, im Skripte zu testen.

Und da werden mir schon 4 verschiedene Python Environments angezeigt: Anaconda 5.2.0, Machine Lerning Server 4.5.12.0, Python 3.6, Python 3.7
Vielleicht ist das für mich ein guter Startpunkt, im Skripte zu testen.
Ich habe jetzt gesehen, dass ich python Skripte sehr gut in Azure Data Studio Notebooks testen kann, wenn ich da den Kernel auf Python 3 ändere. Da ist dann auch klar, in welcher Umgebung das läuft und welche Module importiert wurden, Ergebnisse und Fehlerausgaben bekomme ich schnell zu sehen.
Jetzt muss ich mal schauen, was diese Azure Data Studio Notebooks mit Jupyter Notebooks verbindet und mache mich mal schlau, wie ich in solchen Umgebungen arbeiten kann. Diese Notebooks scheinen ja im Python Bereich weit verbreitet zu sein, so dass ich da wohl auch schnell einen Einstieg finde. Jetzt schaue ich erst mal, wie ich dort am besten arbeite, wenn ich aus einem Skript heraus auf einen anderen Modul zugreifen will, wo ich den am besten ablege usw.
Jetzt muss ich mal schauen, was diese Azure Data Studio Notebooks mit Jupyter Notebooks verbindet und mache mich mal schlau, wie ich in solchen Umgebungen arbeiten kann. Diese Notebooks scheinen ja im Python Bereich weit verbreitet zu sein, so dass ich da wohl auch schnell einen Einstieg finde. Jetzt schaue ich erst mal, wie ich dort am besten arbeite, wenn ich aus einem Skript heraus auf einen anderen Modul zugreifen will, wo ich den am besten ablege usw.