2013-06-25 118 views
1

我正在使用通過互聯網發佈一些API(肥皂)。 我想用的nginx + uwsgi但我遇到了麻煩: 我得到這個輸出瀏覽由uwsgi二進制提供的頁面:ladon + uwsgi:無法加載應用程序

Traceback (most recent call last): 
File "/usr/local/lib/python2.7/dist-packages/ladon/server/wsgi_application.py", line 332, in __call__ 
self.import_services(self.service_list) 
File "/usr/local/lib/python2.7/dist-packages/ladon/server/wsgi_application.py", line 288, in import_services 
__import__(service) 
ImportError: No module named serverL 

我的CLI是:

uwsgi -s 127.0.0.1:7777 --logto ~/uwsgi.log --wsgi-file /path/scripts/handler.py 

handler.py包含:

from ladon.server.wsgi import LadonWSGIApplication 
from os.path import abspath,dirname 

application = LadonWSGIApplication('serverL','/path/script/src') 

和我的樹在/路徑/腳本:

. 
├── handler.py 
├── src 
│ ├── serverL.py 

在此先感謝

回答

1

我強烈建議你投資一些時間瞭解PYTHONPATH/sys.path中,是Python的世界,但大量的最重要的方面之一用戶低估它(你可以注意到它是如何在部署過程中出現錯誤的最主要原因之一)。

你的問題是python虛擬機沒有辦法知道serverL模塊在哪裏,所以你應該在pythonpath中添加'/ path/script/src'(你有各種方法可以做到,最快的是使用--pythonpath uWSGI選項)