Wygląda na to, że używasz swojej aplikacji w Pythonie 2.x, ale moduły używane przez Twoją aplikację pochodzą z Pythona 3.x. W szczególności pymongo
próbuje zaimportować moduł urllib.parse
, który nazywał się urlparse
w Pythonie 2.x. W rezultacie wykonanie import urllib.parse
z Pythonem 2.x powoduje ImportError.
Jak aktywowałeś swoje środowisko wirtualne?
Odpowiedź na komentarz:
W porządku. Kod pymongo w twoim wirtualnym środowisku jest tym, co łączy się z twoim serwerem mongodb (używając określonego portu).
Czy postępowałeś zgodnie z instrukcjami zawartymi w dokumentacji Flask w odniesieniu do mod_wsgi
, virtualenv
i ustawienie activate_this
zmienna?
Odpowiedź na komentarz nr 2:
Tak, Twoja witryna działa dobrze, gdy jest wykonywana w Pythonie 2.x, ale kiedy zaczynasz korzystać z bazy danych, używasz modułów, które próbują importować biblioteki wewnątrz Pythona 3.x. W rezultacie, jeśli nadal będziesz używać Pythona 2.x do uruchamiania swojej witryny, nie będziesz używać bazy danych.
Spróbuj tego:
1) Przejdź do katalogu zawierającego Twoje środowisko wirtualne:
$ cd /some/path/to/venv
2) Wymień wszystkie pliki:
$ ls
3) Przejdź do katalogu bin:
$ cd bin
4) Wymień wszystkie pliki:
$ ls
5) Otwórz plik activate_this.py
i przeczytaj komentarze u góry, np.
$ vi activate_this.py
6) Kliknij link do dokumentów Flash, które opublikowałem w mojej poprzedniej odpowiedzi i ponownie przeczytaj tam materiał.