使用 PyCharm 在 gunicorn 下调试 Flask 应用程序
Debugging a Flask app under gunicorn with PyCharm
我想在 Gunicorn 下使用 PyCharm CE 单步执行 Hello-World Flask 应用程序 运行。
应用程序是通常的 5-10 班轮坐在 /tmp/hello-world/app
,而 venv 在 /tmp/env
。
我的 PyCharm 配置如下所示:
Script: /tmp/env/bin/gunicorn
Script parameters: /tmp/hello-world/app:app
Working directory: /tmp/hello-world
该应用程序使用 gunicorn app:app
从该 venv 的命令行运行良好,但是当我在 PyCharm CE 下启动服务器时,gunicorn 的内部导入失败:
Traceback (most recent call last):
File "/tmp/env/lib/python2.7/site-packages/gunicorn/arbiter.py", line 578, in spawn_worker
worker.init_process()
File "/tmp/env/lib/python2.7/site-packages/gunicorn/workers/base.py", line 126, in init_process
self.load_wsgi()
File "/tmp/env/lib/python2.7/site-packages/gunicorn/workers/base.py", line 135, in load_wsgi
self.wsgi = self.app.wsgi()
File "/tmp/env/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/tmp/env/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
return self.load_wsgiapp()
File "/tmp/env/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
return util.import_app(self.app_uri)
File "/tmp/env/lib/python2.7/site-packages/gunicorn/util.py", line 352, in import_app
__import__(module)
ImportError: Import by filename is not supported.
不起作用的解决方案:
- 我在 macOS 和 PyCharm CE 2016.3 上看不到 "gevent compatible debugging"。将近四年后,这个答案是否相关?
错误很明显。您正在尝试通过给它一个文件路径来按文件名导入。尝试将您的脚本参数更改为 app:app,它应该可以工作。
我想在 Gunicorn 下使用 PyCharm CE 单步执行 Hello-World Flask 应用程序 运行。
应用程序是通常的 5-10 班轮坐在 /tmp/hello-world/app
,而 venv 在 /tmp/env
。
我的 PyCharm 配置如下所示:
Script: /tmp/env/bin/gunicorn
Script parameters: /tmp/hello-world/app:app
Working directory: /tmp/hello-world
该应用程序使用 gunicorn app:app
从该 venv 的命令行运行良好,但是当我在 PyCharm CE 下启动服务器时,gunicorn 的内部导入失败:
Traceback (most recent call last):
File "/tmp/env/lib/python2.7/site-packages/gunicorn/arbiter.py", line 578, in spawn_worker
worker.init_process()
File "/tmp/env/lib/python2.7/site-packages/gunicorn/workers/base.py", line 126, in init_process
self.load_wsgi()
File "/tmp/env/lib/python2.7/site-packages/gunicorn/workers/base.py", line 135, in load_wsgi
self.wsgi = self.app.wsgi()
File "/tmp/env/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/tmp/env/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
return self.load_wsgiapp()
File "/tmp/env/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
return util.import_app(self.app_uri)
File "/tmp/env/lib/python2.7/site-packages/gunicorn/util.py", line 352, in import_app
__import__(module)
ImportError: Import by filename is not supported.
不起作用的解决方案:
- 我在 macOS 和 PyCharm CE 2016.3 上看不到 "gevent compatible debugging"。将近四年后,这个答案是否相关?
错误很明显。您正在尝试通过给它一个文件路径来按文件名导入。尝试将您的脚本参数更改为 app:app,它应该可以工作。