2015-11-19 12 views
5

Ich versuche eine Verbindung zu redshift von meinem Python-Code. mein pip installiert:NoSuchModuleError: Plugin kann nicht geladen werden: sqlalchemy.dialecs: redshift.psycopg2

psycopg2==2.6.1 
redshift-sqlalchemy==0.4.1 
SQLAlchemy==1.0.9 

und meine virtuelle Maschine verfügt über:

libpq-dev 
python-psycopg2 

Aber ich bin immer noch

engine = create_engine('redshift+psycopg2://{}:{}@{}'.format(username, password, url)) 
    File "/opt/project/env/local/lib/python2.7/site-packages/sqlalchemy/engine/__init__.py", line 386, in create_engine 
    return strategy.create(*args, **kwargs) 
    File "/opt/project/env/local/lib/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 51, in create 
    entrypoint = u._get_entrypoint() 
    File "/opt/project/env/local/lib/python2.7/site-packages/sqlalchemy/engine/url.py", line 131, in _get_entrypoint 
    cls = registry.load(name) 
    File "/opt/project/env/local/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 205, in load 
    (self.group, name)) 
NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:redshift.psycopg2 

Mit der gleichen Konfiguration bekommen, kann ich von meinem Laptop laufen (Mac), aber auf Linux, ich denke, einige Pakete fehlen noch? Jeder Vorschlag wird geschätzt, danke!

+0

Entschuldigung, die frühere Post nicht wirklich funktionieren. –

+0

Anstatt mit redshift.psycopg2 zu kämpfen und direkt postgresql + psycopg2 zu verwenden, funktioniert es gut :) –

+0

Was ist die genaue Lösung für dieses Problem? Ich muss mit redshift verbinden und postgresql + psycopg2 funktioniert nicht. – Sarang

Antwort

0

Der Link unten hilft über Pythong mit der psycopg2 Bibliothek ohne die Sqlalchemy Abhängigkeit

http://sobhan06k.blogspot.in/2014/11/reach-redshift-using-python-library.html

+0

Danke Mukund, aber es sieht so aus, als ob der Link, den du sendest, nicht existiert. Und mein Projekt hängt von sqlalchemy ab, wir verwenden es sehr, besser, um einen Weg zu finden, diese Pakete unter Linux laufen zu lassen. Ich glaube, es gibt nicht so viel zu ändern, aber müssen nur herausfinden, wo :( –

+0

der Link fehlte .html am Ende, überprüfen Sie jetzt – Mukund

0

Ich hatte das gleiche Problem, und ich es gelöst Rotverschiebung zu verbinden, wenn ich das __pycache__ Verzeichnis in redshift_sqlalchemy Paket entfernt .

Gehe zu dir site-packeges in meinem Fall ist in meinem virtualenv.

so cdvirtualenv und cd lib/python3.5/site-packages/redshift_sqlalchemy schließlich rm __pycache__.

+0

Hallo, versuchte Entfernen der __pycache__-Verzeichnis, aber immer noch den gleichen Fehler. Plugin kann nicht geladen werden: sqlalchemy.dialecs: redshift.psycopg2 – Sarang

+0

hast du die Dienste neu gestartet? Bitte, gib mir die Schritte, die du folgst. – paridin

+0

@ paridin welche Dienste neu zu starten? Für jetzt habe ich es gelöst, indem ich aus Virtuelle Umgebung und Ausführen in der Python-Hauptumgebung.Es läuft gut – Sarang

0

Ein boneheaded Weg, um NoSuchModule Ausnahme zu erhalten ist, dass die Db Verbindungszeichenfolge im falschen Format ist. In meinem Fall habe ich diesen Fehler, wenn ich

DB_URI = 'postgresql://...' 
geändert

zu

DB_URI = 'pg8000://...' 

aber sein sollte:

DB_URI = 'postgresql+pg8000://