2013-05-17 27 views
5

tôi cài đặt như hướng dẫn các http://www.reinbach.com/uwsgi-nginx-flask-virtualenv-mac-os-x.html liên kết và khi thực hiện lệnh uwsgi --ini deploy/deploy.ini, nhà ga cho biết đã có lỗi khi nhập khẩu:Flask + Nginx + uWSGI: ImportError: Không có mô-đun tên trang web

Đặt PYTHONHOME-/virtualenv/sample/

ImportError: No module named site 

tôi đã thiết PYTHONHOME tôi và PYTHONPATH như

export PYTHONPATH=$PYTHONPATH:/Library/Python/2.7/site-packages 
export PYTHONHOME=$PYTHONHOME:/Library/Python/2.7 

Tôi không thể tìm ra điều gì sai trái với nó.

Ai đó có thể giúp tôi khắc phục sự cố không?

Thông báo thông tin toàn tại nhà ga được hiển thị như dưới đây nếu nó là hữu ích:

(env)ios-devmatoMacBook-Pro:hello ios_dev$ uwsgi --ini deploy/deploy.ini 
[uWSGI] getting INI configuration from deploy/deploy.ini 
*** Starting uWSGI 1.9.10 (64bit) on [Fri May 17 16:42:22 2013] *** 
compiled with version: 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) on 17 May 2013 12:41:07 
os: Darwin-11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu- 
1699.32.7~1/RELEASE_X86_64 
nodename: ios-devmatoMacBook-Pro.local 
machine: x86_64 
clock source: unix 
detected number of CPU cores: 4 
current working directory: /Users/ios_dev/Desktop/sample/hello 
detected binary path: /Users/ios_dev/Documents/little/little-web/little_web_dev/env/bin/uwsgi 
your processes number limit is 709 
your memory page size is 4096 bytes 
detected max file descriptor number: 256 
lock engine: OSX spinlocks 
uwsgi socket 0 bound to TCP address 127.0.0.1:3031 fd 3 
Python version: 2.7.1 (r271:86832, Jun 16 2011, 16:59:05) [GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] 

Đặt PYTHONHOME để /virtualenv/sample/

ImportError: No module named site 
+0

Tại sao bạn thiết lập PYTHONHOME? Nó cũng nên là một thư mục duy nhất và không được thể hiện như một con đường như bạn đang làm. Các mục nhập rỗng và ruột kết trong nó sẽ được vặn lên mọi thứ. –

+0

vui lòng đăng nội dung của tập lệnh 'deploy/deploy.ini' của bạn. – Ewan

+0

@Graham Dumpleton: Tôi thấy trong hướng dẫn của liên kết rằng có một câu thiết lập pythonhome, vì vậy tôi chỉ cần sao chép trong tập tin của tôi. Nhưng tôi không chắc liệu nó có cần thiết hay không. – Yuqi

Trả lời

6

Đây là cách tôi giải quyết được thông báo lỗi tương tự (ImportError: Không có mô-đun tên trang web) mà tôi nhận được trong khi thử hướng dẫn này: https://uwsgi.readthedocs.org/en/latest/tutorials/Django_and_nginx.html.

  • Deactivate các virtualenv
  • Install uWSGI toàn hệ thống (nếu chưa được cài đặt toàn hệ thống)

sudo pip cài đặt uwsgi

  • Chỉnh sửa các tập tin uwsgi.ini. Tôi nhận xét ra phù hợp với

nhà =/path/to/virtualenv

  • uWSGI --ini mysite_uwsgi.ini
+2

Tôi không biết tại sao bạn sẽ loại bỏ chỉ thị nhà. Điều này chắc chắn không phải là câu trả lời đúng. Các chỉ thị nhà nói với uwsgi mà virtualenv để sử dụng. Vì vậy, bạn chỉ xóa nó nếu bạn không sử dụng môi trường ảo. ImportError thường có nghĩa là nó không thể tìm thấy mô-đun trong virtualenv đã định nghĩa, vì vậy hãy đảm bảo rằng nó tồn tại và các mô-đun thực sự hiện diện. –

+0

Tôi đã không downvote. Và xin lỗi tôi sẽ không upvote này. –

+0

Tôi đã khôi phục bản chỉnh sửa của bạn - nếu bạn muốn xóa câu trả lời, hãy xóa nó_ bằng cách sử dụng liên kết "xóa" ở dưới cùng bên trái (bên cạnh chỉnh sửa). Đừng phá hoại bài đăng của chính bạn. – l4mpi

1

Tôi đọc rất nhiều tài liệu về các câu hỏi, nhưng không có câu trả lời.

Thật trùng hợp, tôi khắc phục sự cố này bằng cách chỉnh sửa uid và gid dưới dạng gốc.

Dường như vấn đề về quyền. Tôi không biết tại sao, nhưng nó chỉ hoạt động. Hãy nhớ rằng, nó là rất không an toàn để chạy một môi trường sản phẩm như là người chủ.

+0

Bạn không thể nhập mô-đun mà không có quyền chính xác. Để khắc phục sự cố này, hãy sử dụng người dùng 'chown -R: group/path/to/env' để chủ sở hữu và nhóm chính xác được đặt cho môi trường và đặt các quyền phù hợp. –

0

1, năng động ảo bạn sử dụng

2, PIP cài đặt uwsgi

này hành động quan trọng, sau đó các

command -v wsgi 

hiển thị

/virtual-path/bin/uwsgi 

3, sử dụng này người dùng hiện tại để chạy uwsgi, bởi vì người dùng khác không hoạt động virtualenv

Các vấn đề liên quan