Пути должны быть настроены правильно, переменная JAVA_HOME также должна работать на Mac (M1). Моя подруга протестировала его на своем ноутбуке с Windows (также в файле блокнота Jupyter), и у нее все сработало, и эта ошибка не возникла.
- Драйвер JDBC: mssql-jdbc-12.8.1.jre11.jar
- Версия JDK: «21.0.5»
- Версия для Mac: MacOS Sonoma (Версия 14.5)
- Версия Python: 3.11.5
Пожалуйста, дайте мне знать, если есть какая-либо дополнительная информация, которая может быть полезна!
Код: Выделить всё
import os
import jpype
import jaydebeapi
import pandas as pd
# Pfad zur JAR-Datei
jdbc_driver_path = 'path/to/jar/file'
if not os.path.isfile(jdbc_driver_path):
print(f"JAR-Datei wurde nicht gefunden unter: {jdbc_driver_path}")
else:
print(f"JAR-Datei ist vorhanden: {jdbc_driver_path}")
# Start JVM mit der JAR-Datei im Klassenpfad
if not jpype.isJVMStarted():
jpype.startJVM(jpype.getDefaultJVMPath(), f"-Djava.class.path={jdbc_driver_path}")
# Verbindungsparameter
server = 'dwh...'
database = 'db_name'
username = 'username'
password = 'password'
# JDBC-URL
jdbc_url = f'jdbc:sqlserver://{server};databaseName={database};encrypt=true;trustServerCertificate=true'
# Verbindung zur Datenbank herstellen
try:
conn = jaydebeapi.connect(
'com.microsoft.sqlserver.jdbc.SQLServerDriver',
jdbc_url,
[username, password],
jars=jdbc_driver_path
)
print("Verbindung erfolgreich hergestellt")
# Cursor erstellen
cursor = conn.cursor()
# Tabelle für Abfrage
table_name = 'Facts_Monthly_Sales_Quota'
# SQL-Abfrage zum Abrufen aller Daten der Tabelle
query = f"SELECT * FROM {table_name}"
# Abfrage ausführen und Ergebnisse in eine Liste laden
cursor.execute(query)
data = cursor.fetchall()
columns = [desc[0] for desc in cursor.description]
# DataFrame erstellen
df = pd.DataFrame(data, columns=columns)
# DataFrame anzeigen
print(df)
# Verbindung und Cursor schließen
cursor.close()
conn.close()
except Exception as e:
import traceback
print("Fehler beim Herstellen der Verbindung:")
traceback.print_exc() # Zeigt den vollständigen Stacktrace an
Я пытался настроить соединение с базой данных для доступа к данным, оно должно подключиться, но продолжает сталкиваться с ошибками. та же ошибка.
Полный вывод
Подробнее здесь: https://stackoverflow.com/questions/791 ... -not-found