2015-11-19 39 views
5

Sto provando a connettermi a redshift dal mio codice Python. mia pip installato:NoSuchModuleError: Impossibile caricare plugin: sqlalchemy.dialects: redshift.psycopg2

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

e la mia macchina virtuale ha:

libpq-dev 
python-psycopg2 

ma sto ancora ricevendo

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 

Con la stessa configurazione, sono in grado di correre dal mio computer portatile (Mac), ma su Linux, suppongo che alcuni pacchetti manchino ancora? Ogni suggerimento sarà apprezzato, grazie!

+0

Siamo spiacenti, il post precedente non funzionano veramente. –

+0

Invece di lottare con redshift.psycopg2 e utilizzare direttamente postgresql + psycopg2, funziona benissimo :) –

+0

Qual è la soluzione esatta per questo problema? Ho bisogno di connettermi con redshift e postgresql + psycopg2 non funziona. – Sarang

risposta

0

Il link qui sotto aiuta a connettersi a redshift via Pythong utilizzando la libreria psycopg2 senza la dipendenza di SQL alchimia

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

+0

Grazie Mukund, ma sembra che il link che hai inviato non esista. E il mio progetto dipende da sqlalchemy, lo usiamo molto, meglio capire un modo per lasciare che quei pacchetti funzionino su linux. Credo che non ci sia molto da modificare, ma ho solo bisogno di scoprire dove :( –

+0

il link mancava .html alla fine, controlla ora – Mukund

0

Ho avuto lo stesso problema e ho risolto quando ho rimosso la directory __pycache__ in redshift_sqlalchemy pacchetto .

Vai a te sito-packeges nel mio caso è nel mio virtualenv.

quindi cdvirtualenv e cd lib/python3.5/site-packages/redshift_sqlalchemy infine rm __pycache__.

+0

Ciao, Ho provato a rimuovere la directory __pycache__, ma continuo a dare lo stesso errore Impossibile caricare il plugin: sqlalchemy.dialects: redshift.psycopg2 – Sarang

+0

hai riavviato i servizi? Per favore, dammi i passi che stai seguendo – paridin

+0

@ paridin quali servizi riavviare? Per ora, l'ho risolto uscendo da ambiente virtuale ed eseguirlo nell'ambiente Python principale.Esso va bene – Sarang

0

Un modo per ottenere l'eccezione NoSuchModule è che la stringa di connessione db è nel formato errato. Nel mio caso ho ottenuto questo errore quando ho cambiato

DB_URI = 'postgresql://...' 

a

DB_URI = 'pg8000://...' 

ma dovrebbe essere:

DB_URI = 'postgresql+pg8000://