Det ser ut som att du kör din app med python 2.x, men modulerna som din app använder är från python 3.x. I synnerhet pymongo
försöker importera modulen urllib.parse
, som kallades urlparse
i python 2.x. Som ett resultat, exekvering av import urllib.parse
med python 2.x orsakar ett importfel.
Hur aktiverade du din virtuella miljö?
Svar på kommentar:
Det är okej. Pymongokoden inuti din virtuella env är den som ansluter till din mongodb-server (med en specificerad port).
Har du följt instruktionerna i Flask docs med avseende på mod_wsgi
, virtualenv
, och ställ in activate_this
variabel?
Svar på kommentar #2:
Ja, din webbplats fungerar bra när den körs med python 2.x, men när du börjar använda db använder du moduler som försöker importera bibliotek inuti python 3.x. Som ett resultat, om du fortsätter att använda python 2.x för att köra din webbplats, kommer du inte att använda en db.
Prova detta:
1) Gå till katalogen som innehåller din virtuella miljö:
$ cd /some/path/to/venv
2) Lista alla filer:
$ ls
3) Byt till bin-katalogen:
$ cd bin
4) Lista alla filer:
$ ls
5) Öppna filen activate_this.py
och läs kommentarerna överst, t.ex.
$ vi activate_this.py
6) Klicka på länken till Flash-dokumenten som jag postade i mitt tidigare svar och läs materialet där igen.