问题是这样的:
我在 Eclipse 中创建了 PyDev 提供的 Google-App-Engine 的 HelloWorld 演示,然后我只是运行演示项目,浏览 localhost:8080 并成功。
但是后来我停止了项目并通过按钮重新启动它(或只是重新启动它),浏览器无法向我显示来自 localhost:8080 的页面,浏览器不断要求响应并且无法得到它。
我用谷歌搜索了大约 5 个小时。最后,我找到了问题所在。首先,当helloworld项目启动时,taskmgr中会添加2个python.exe进程。当您从 PyDev 终止项目时,那里没有错误迹象,但只有 1 个 python.exe 进程被终止,即使您关闭 Eclipse,另一个仍然存在。所以这些python.exe仍然控制着8080端口,而relaunch动作创建的python.exe新实例无法使用8080端口。所以,浏览器无法得到响应。如果您继续重新启动项目,则任务列表中的python.exe数量可能会变为10+。我尝试过使用 Windows cmd 启动项目,2 个进程在项目启动时启动,2 个进程在进程终止时终止。
将项目使用的端口 8080 更改为其他端口无法解决问题。如果您使用 Google 的 Google-App-Engine 客户端启动和停止。它运行良好,任务列表中没有多余的 python.exe 进程。
顺便说一句,我现在尝试将这些软件更新到最新版本并重新安装它们。但问题仍然存在。
我尝试使用 pythonw.exe 而不是 python.exe 作为解释器,问题仍然存在。
下面是一些环境数据:
- 操作系统:Win7x64 SP1
- 日食:4.3
- PyDev:2.8.2
- 谷歌应用引擎:1.8.4
- 蟒蛇:2.7.5 x86
根据我上面提到的那些细节,我可以认为问题来自 PyDev,但我找不到解决方案或将问题提交给 PyDev 项目团队的方式。