Vypadá to, že svou aplikaci používáte s pythonem 2.x, ale moduly, které vaše aplikace používá, jsou z pythonu 3.x. Konkrétně pymongo
se pokouší importovat modul urllib.parse
, který se jmenoval urlparse
v pythonu 2.x. Výsledkem je spuštění import urllib.parse
s pythonem 2.x způsobí chybu ImportError.
Jak jste aktivovali své virtuální prostředí?
Reakce na komentář:
To je v pořádku. Kód pymongo ve vašem virtuálním prostředí je to, co se připojuje k vašemu serveru mongodb (pomocí zadaného portu).
Postupovali jste podle pokynů v Dokumentace k lahvičce s ohledem na mod_wsgi
, virtualenv
a nastavení activate_this
proměnná?
Reakce na komentář č. 2:
Ano, váš web funguje dobře, když je spouštěn pomocí pythonu 2.x, ale když začnete používat db, používáte moduly, které se snaží importovat knihovny do pythonu 3.x. V důsledku toho, pokud budete i nadále používat python 2.x ke spouštění svého webu, nebudete používat db.
Zkuste toto:
1) Přejděte do adresáře obsahujícího vaše virtuální prostředí:
$ cd /some/path/to/venv
2) Seznam všech souborů:
$ ls
3) Přejděte do adresáře bin:
$ cd bin
4) Seznam všech souborů:
$ ls
5) Otevřete soubor activate_this.py
a přečtěte si komentáře nahoře, např.
$ vi activate_this.py
6) Klikněte na odkaz na dokumenty Flash, které jsem zveřejnil ve své předchozí odpovědi, a přečtěte si tam materiál znovu.