Изглежда, че изпълнявате приложението си с 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 документите, които публикувах в предишния си отговор, и прочетете отново материала там.