1

我正在使用通过 Internet 发布一些 API(肥皂)。我想使用nginx + uwsgi,但我遇到了麻烦:我将这个输出浏览到 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')

和我在 /path/script 中的树:

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

提前致谢

4

1 回答 1

1

我强烈建议您花一些时间来了解 PYTHONPATH/sys.path,它是 python 世界中最重要的方面之一,但很多用户低估了它(您可以注意到它是在部署)。

你的问题是python VM无法知道serverL模块在哪里,所以你应该在pythonpath中添加'/path/script/src'(你有多种方法,最快的是使用--pythonpath uWSGI选项)

于 2013-06-25T10:30:58.717 回答