使用.sh启动gunicorn时出现问题(没有名为'.0'的模块)

问题描述 投票:1回答:1

我正试图用gunicorn开始一个烧瓶申请,但我面临一个问题。

从命令行启动时,它可以正常使用此命令:

/usr/local/bin/gunicorn --preload --certfile /etc/letsencrypt/live/server_name.net/fullchain.pem --keyfile /etc/letsencrypt/live/server_name.net/privkey.pem -w 17
-b 0.0.0.0:9090 wsgi:app

来自.sh脚本的相同命令会引发错误:

    Traceback (most recent call last):
  File "/usr/local/bin/gunicorn", line 11, in <module>
    sys.exit(run())
  File "/usr/local/lib/python3.4/dist-packages/gunicorn/app/wsgiapp.py", line 61, in run
    WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
  File "/usr/local/lib/python3.4/dist-packages/gunicorn/app/base.py", line 221, in run
    super(Application, self).run()
  File "/usr/local/lib/python3.4/dist-packages/gunicorn/app/base.py", line 70, in run
    Arbiter(self).run()
  File "/usr/local/lib/python3.4/dist-packages/gunicorn/arbiter.py", line 58, in __init__
    self.setup(app)
  File "/usr/local/lib/python3.4/dist-packages/gunicorn/arbiter.py", line 118, in setup
    self.app.wsgi()
  File "/usr/local/lib/python3.4/dist-packages/gunicorn/app/base.py", line 65, in wsgi
    self.callable = self.load()
  File "/usr/local/lib/python3.4/dist-packages/gunicorn/app/wsgiapp.py", line 52, in load
    return self.load_wsgiapp()
  File "/usr/local/lib/python3.4/dist-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/usr/local/lib/python3.4/dist-packages/gunicorn/util.py", line 372, in import_app
    __import__(module)
ImportError: No module named '.0'

cli和.sh都以root身份运行。

相同的脚本在不同的服务器上工作正常,所以我猜有环境问题。

我尝试在脚本的开头添加以下行,但没有成功:

$PYTHONPATH=/path/to/my/app

$PWD=/path/to/my/app

这是我正在使用的wsgi文件:

from api import app

if __name__ == "__main__":
    app.run()

知道问题可能是什么?

flask sh gunicorn
1个回答
0
投票

我终于能够解决这个问题了。以下脚本似乎正在运行:

cd /path_to_app/
gunicorn --certfile=/etc/letsencrypt/live/server_name.net/fullchain.pem --keyfile=/etc/letsencrypt/live/server_name.net/privkey.pem -w 4 -b 0.0.0.0:9090 wsgi:app
© www.soinside.com 2019 - 2024. All rights reserved.