Изглежда, че изпълнявате приложението си с python 2.x, но модулите, които приложението ви използва, са от python 3.x. По-специално pymongo се опитва да импортира модула urllib.parse , който се наричаше urlparse в python 2.x. В резултат на това се изпълнява import urllib.parse с python 2.x причинява ImportError.
Как активирахте своята виртуална среда?
Отговор на коментар:
Това е добре. Кодът на pymongo във вашата виртуална среда е това, което се свързва с вашия сървър mongodb (използвайки определен порт).
Следвали ли сте инструкциите в документи на Flask по отношение на mod_wsgi , virtualenv и настройка на activate_this променлива?
Отговор на коментар #2:
Да, вашият сайт работи добре, докато се изпълнява с python 2.x, но когато започнете да използвате db, вие използвате модули, които се опитват да импортират библиотеки вътре в python 3.x. В резултат на това, ако продължите да използвате python 2.x за изпълнение на сайта си, тогава няма да използвате db.
Опитайте това:
1) Отидете в директорията, съдържаща вашата виртуална среда:
$ cd /some/path/to/venv
2) Избройте всички файлове:
$ ls
3) Променете в директорията bin:
$ cd bin
4) Избройте всички файлове:
$ ls
5) Отворете файла activate_this.py и прочетете коментарите в горната част, напр.
$ vi activate_this.py
6) Кликнете върху връзката към Flash документите, които публикувах в предишния си отговор, и прочетете отново материала там.