Có vẻ như bạn đang chạy ứng dụng của mình bằng python 2.x, nhưng các mô-đun mà ứng dụng của bạn sử dụng là từ python 3.x. Đặc biệt, pymongo
đang cố nhập mô-đun urllib.parse
, được gọi là urlparse
trong python 2.x. Do đó, thực thi import urllib.parse
với python 2.x gây ra lỗi ImportError.
Bạn đã kích hoạt môi trường ảo của mình như thế nào?
Phản hồi nhận xét:
Tốt rồi. Mã pymongo bên trong env ảo của bạn là mã kết nối với máy chủ mongodb của bạn (sử dụng một cổng được chỉ định).
Bạn đã làm theo các hướng dẫn trong tài liệu về Flask liên quan đến mod_wsgi
, virtualenv
và đặt activate_this
biến?
Phản hồi cho nhận xét số 2:
Có, trang web của bạn hoạt động tốt khi được thực thi với python 2.x, nhưng khi bạn bắt đầu sử dụng db, bạn đang sử dụng các mô-đun cố gắng nhập các thư viện bên trong python 3.x. Do đó, nếu bạn tiếp tục sử dụng python 2.x để thực thi trang web của mình, thì bạn sẽ không sử dụng db.
Hãy thử điều này:
1) Đi tới thư mục chứa môi trường ảo của bạn:
$ cd /some/path/to/venv
2) Liệt kê tất cả các tệp:
$ ls
3) Thay đổi vào thư mục bin:
$ cd bin
4) Liệt kê tất cả các tệp:
$ ls
5) Mở tệp activate_this.py
và đọc các nhận xét ở trên cùng, ví dụ:
$ vi activate_this.py
6) Nhấp vào liên kết đến tài liệu Flash mà tôi đã đăng trong phản hồi trước đó của mình và đọc lại tài liệu ở đó.