2015-11-19 44 views
5

Próbuję połączyć się z redshift z mojego kodu Pythona. mój pip zainstalowane:NoSuchModuleError: Nie można załadować wtyczki: sqlalchemy.dialects: redshift.psycopg2

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

i moja wirtualna maszyna posiada:

libpq-dev 
python-psycopg2 

ale nadal jestem coraz

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 

Z tej samej konfiguracji, jestem w stanie uruchomić z mojego laptopa (mac), ale na Linuksie, wydaje mi się, że niektóre pakiety wciąż nie istnieją? Wszelkie sugestie zostaną docenione, dzięki!

+0

Niestety, poprzedni post nie naprawdę działa. –

+0

Zamiast walczyć z redshift.psycopg2 i korzystać bezpośrednio z postgresql + psycopg2, działa dobrze :) –

+0

Jakie jest dokładne rozwiązanie tego problemu? Potrzebuję połączyć się z redshift i postgresql + psycopg2 nie działa. – Sarang

Odpowiedz

0

poniższy link pomaga połączyć się z przesunięciem ku czerwieni poprzez Pythong wykorzystaniem biblioteki psycopg2 bez uzależnienia SQL alchemii

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

+0

Dzięki Mukund, ale wygląda na to, że wysłany link nie istnieje. A mój projekt zależy od sqlalchemy, używamy go dużo, lepiej, aby znaleźć sposób na umożliwienie pracy tych pakietów na Linuksie. Wydaje mi się, że nie ma wiele do zmodyfikowania, ale wystarczy dowiedzieć się, gdzie :( –

+0

brakowało łącza. Html na końcu, sprawdź teraz – Mukund

0

miałem ten sam problem i go rozwiązał, gdy usunąłem katalog __pycache__ w redshift_sqlalchemy pakietu .

Idź do ciebie site-packeges w moim przypadku jest w moim virtualenv.

, więc cdvirtualenv i cd lib/python3.5/site-packages/redshift_sqlalchemy wreszcie rm __pycache__.

+0

Witam, Próbowałem usunąć katalog __pycache__, ale nadal daje ten sam błąd. Nie można załadować wtyczki: sqlalchemy.dialects: redshift.psycopg2 – Sarang

+0

czy zrestartowałeś usługi? Proszę podać mi kroki, które podążasz: – paridin

+0

@ paridin które usługi chcesz ponownie uruchomić? Na razie rozwiązałem to wychodząc z Działa bardzo dobrze – Sarang

0

Dramatyczny sposób na uzyskanie wyjątku NoSuchModule polega na tym, że ciąg połączenia db jest w niewłaściwym formacie. W moim przypadku mam ten błąd, gdy zmieniłem

DB_URI = 'postgresql://...' 

do

DB_URI = 'pg8000://...' 

ale powinno być:

DB_URI = 'postgresql+pg8000://