Skip to main content
 首页 » 编程设计

python之使用 Pycharm、Vagrant、Apache 和 mod_wsgi 远程调试 Flask 应用程序

2025年05月04日45thcjp

我有一台运行 vagrant 和 ubuntu 虚拟机的 Windows 计算机。 ubuntu 虚拟机有一个 Flask 应用程序在带有 mod_wsgi 的 apache 上运行。 我还设置了 PyCharm 以使用 Vagrant 作为我的远程 Python 解释器。

我可以很好地调试脚本,但我似乎找不到调试正在运行的实际 Flask 应用程序的方法。

Vagrant 共享代码文件夹并转发端口 80 => 8080

我可以通过在 Windows 中转到 127.0.0.1:8080 来访问我的 Chrome 中的 Flask 应用程序。

我还尝试通过复制 pyhton-debug.egg 并将以下内容添加到我的 init.py 文件中来遵循 PyCharm 指南

if __name__ =='__main__': 
	app.run(host='0.0.0.0', port=80, threaded=True) 
 
	import sys 
	sys.path.append('/home/vagrant/code/Flask-App/pycharm-debug.egg') 
 
	import pydevd 
	pydevd.settrace('0.0.0.0', port=8080, stdoutToServer=True, stderrToServer=True)

请您参考如下方法:

由于某些原因,我的 import pydevd 似乎没有正常工作,所以我使用 easy_install 安装了 egg,它似乎没问题。

我还必须将 IP 地址更改为从我的虚拟机到我的 Windows 机器的 IP 地址,并在调试配置中使用这些设置。

所以我的 __init__.py 文件有:

import pydevd 
 
pydevd.settrace( 
    '10.0.2.2',  
    port=80,  
    stdoutToServer=True,  
    stderrToServer=True 
)