Installation pymysql

Probleme bei der Installation?
Antworten
NoUseForAName
User
Beiträge: 10
Registriert: Montag 22. März 2021, 17:21

Ich habe erst versucht mit sqllite eine Datenbankverbindung aufzubauen, was daran gescheitert ist das ich keine Anleitung gefunden habe wie die gezeigt hat wie username,passwort und host eine Verbindung aufgebaut wird, also habe ich das Thema für mich beendet.

Als Alternative bin ich auf PyMySQL gestoßen, was ich installiert habe. Aber auch hier ist der Aufbau nicht möglich, obwohl es installiert ist. Dennoch führt es zu der Ausgabe
Bild (Bilder werden hier leider nicht angezeigt)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
import datetime ## Datenbankzugriff Demo

import pymysql

import mysql.connector

---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-1-9852dcc99f5f> in <module>
1 import datetime ## Datenbankzugriff Demo
----> 2 import pymysql
3 import mysql.connector

ModuleNotFoundError: No module named 'pymysql'
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Gibt es ein einfaches Paket mit dem problemlos eine Verbindung zu einem (My)sql Server hergestellt werden kann ?
NoUseForAName
User
Beiträge: 10
Registriert: Montag 22. März 2021, 17:21

NoUseForAName hat geschrieben: Montag 5. April 2021, 23:08 Ich habe erst versucht mit sqllite eine Datenbankverbindung aufzubauen, was daran gescheitert ist das ich keine Anleitung gefunden habe wie die gezeigt hat wie username,passwort und host eine Verbindung aufgebaut wird, also habe ich das Thema für mich beendet.

Als Alternative bin ich auf PyMySQL gestoßen, was ich installiert habe. Aber auch hier ist der Aufbau nicht möglich, obwohl es installiert ist. Dennoch führt es zu der Ausgabe
Bild (Bilder werden hier leider nicht angezeigt)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
import datetime ## Datenbankzugriff Demo

import pymysql

import mysql.connector

---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-1-9852dcc99f5f> in <module>
1 import datetime ## Datenbankzugriff Demo
----> 2 import pymysql
3 import mysql.connector

ModuleNotFoundError: No module named 'pymysql'
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Gibt es ein einfaches Paket mit dem problemlos eine Verbindung zu einem (My)sql Server hergestellt werden kann ? Ich hab es auch schon mit dem mysqlconnector versucht, da war die Ausgabe

Code: Alles auswählen

sql_0='SELECT SoftwareID FROM software WHERE ProductID = \'acrobatpro-standard\''     
con = mysql.connector.connect(servername)
con.cmd_change_user(username, password)
con.database = database

cursor = con.cursor()


Code: Alles auswählen

TypeError                                 Traceback (most recent call last)
<ipython-input-19-786858bdc49c> in <module>
      9 
     10 sql_0='SELECT SoftwareID FROM software WHERE ProductID = \'acrobatpro-standard\''
---> 11 con = mysql.connector.connect(servername)
     12 con.cmd_change_user(username, password)
     13 con.database = database

C:\ProgramData\Anaconda3\lib\site-packages\mysql\connector\__init__.py in connect(*args, **kwargs)
    275 
    276     if HAVE_CEXT and not use_pure:
--> 277         return CMySQLConnection(*args, **kwargs)
    278     return MySQLConnection(*args, **kwargs)
    279 Connect = connect  # pylint: disable=C0103

TypeError: __init__() takes 1 positional argument but 2 were given
Was das unten soll ist so kryptisch daher hab ich die Variante ganz verworfen. Gibt es denn keine die einfach zu handeln sind, so wie in Java oder php
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Dass man für sqlite keinen Benutzernamen braucht wurde die ja schon zum anderen Beitrag von dir geschrieben. Und um ein Modul zu benutzen, hilft es wenig, zu raten, was hilft, ist die Dokumentation zu lernen: https://dev.mysql.com/doc/connector-pyt ... targs.html
Das ist mit Java oder PHP auch nicht anders.
Python kennt vier Arten, literale Strings anzugeben (', ", ''' und """). Nimm die Variante, wo man das einfache Anführungszeichen nicht escapen muss.
Benutzeravatar
__blackjack__
User
Beiträge: 13061
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@NoUseForAName: Wenn man beim importieren eines Moduls eine Fehlermeldung bekommt, die sagt das Modul gibt es nicht, dann ist das auch nicht installiert. Zumindest nicht für das Python mit dem man versucht den Code auszuführen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
NoUseForAName
User
Beiträge: 10
Registriert: Montag 22. März 2021, 17:21

nach etwas lesen habe ich festgestellt dass sqllite für mich nutzlos ist da ich host, user und db eintragen muss. Da würde sich eigtlich das PyMySQL anbieten, doch obwohl das Paket installiert ist wird es nicht gefunden (sicherheitshalber habe ich den Pfad in den Patheintrag einfügt. Doch wenn ich versuche ein script auszuführen führt es zum Fehler

Code: Alles auswählen

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-4-d5af2b8ae858> in <module>
      1 import datetime
----> 2 import pymysql
      3 import mysql.connector
      4 ##
      5 servername = 'localhost'

ModuleNotFoundError: No module named 'pymysql'
Und bevor noch jemanf auf diee kommt das Paket sei nicht installiert ich habe es sogar 2mal neu installiert, immer mit der Meldung

Code: Alles auswählen

Requirement already satisfied: PyMySQL in c:\program files\python39\lib\site-packages (1.0.2)
Kennt sich jemand hier so weit aus dass er versteht dass obwohl das Paket an sich da ist, es aber gleichzeitig nicht beim Ausführen eines Scripts aufgefunden wird. Hat es eventuell mit der gleichzeitigen Anacondainstallation zu tun ?
Benutzeravatar
__blackjack__
User
Beiträge: 13061
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@NoUseForAName: Ist es für *das* Python installiert mit dem Du das dann ausführst? Verwendest Du ein venv? Falls ja, ist es da drin installiert?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
NoUseForAName
User
Beiträge: 10
Registriert: Montag 22. März 2021, 17:21

__blackjack__ hat geschrieben: Dienstag 6. April 2021, 11:29 @NoUseForAName: Wenn man beim importieren eines Moduls eine Fehlermeldung bekommt, die sagt das Modul gibt es nicht, dann ist das auch nicht installiert. Zumindest nicht für das Python mit dem man versucht den Code auszuführen.
das magst du denken aber dem ist nicht so. Ich habe das PyMySQL installiert, versuche ich das nochmal zu machen ist die betreffende Ressource bereit vorhanden. Ich weiss nicht wieso das so schwer zu begreifen ist dass das Modul installiert ist und beim Zugriff bucht angezeigt wird. Bleibt mir wohl nur in einem englischsprachigen Forurum nachzufragen.
Benutzeravatar
__blackjack__
User
Beiträge: 13061
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@NoUseForAName: Wenn es für das Python mit dem Du den Quelltext ausführst, installiert wäre, käme der ModuleNotFoundError nicht. Das wird auch ein anderes Forum nicht ändern.

Beantworte doch mal die Nachfragen. Wie hast Du festgestellt/sichergestellt, dass das Python für das Du das installierst auch tatsächlich das gleiche Python ist, mit dem Du den Quelltext ausführst? Wie genau hast Du installiert und wie genau führst Du das aus? Man kann problemlos mehr als eine Python-Installation auf dem Rechner haben und es gibt venv. Letzteres wird gerne von IDEs verwendet.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
NoUseForAName
User
Beiträge: 10
Registriert: Montag 22. März 2021, 17:21

Ursprünglich hatte ich Anaconda installiert welches mit Python 3.8 arbeitet. Das hatte nicht funktioniert. Dann habe ich zusätzlich von der Pythonseite dieselbe Version installiert. Und es gibt auch keinen Pfad der auf ein anderes Python verweist.

Als letztes habe ich Anaconda entfernt, Python 3.9 installiert und im Eclipse das Pythonmodul installiert. Und in keinem der Szenarien wurde das PyMysql gefunden. Ich wollte den Thread nicht einfach so stehen lassen
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Du hast mehr als eine Python-Installation auf Deinem System; auch wenn Du womöglich der Ansicht bist, dem wäre nicht so. In einer davon hast Du PyMySql installiert (der Pfad ist weiter oben von Dir aufgeführt). Eclipse verwendet aber eine andere Installation - was sich in Eclipse einstellen lässt und auch Dein Weg zur Lösung ist.
Antworten