Python Flask应用程序在与cx\ U freeze捆绑后根据请求挂起
我已经用Python制作了一个Flask应用程序,我想把它转换成一个用于分发的exe,为此我尝试使用cx\U freeze 当我从Python或Pycharm运行应用程序时,它工作得非常好,但在我将其打包后,每个请求都会挂起(在chrome中旋转)。我试着调试它,结果创建了一个新的flask应用程序,只有一个路由,没有其他依赖项,同样的事情也发生了 这是我制作的测试应用程序(Python Flask应用程序在与cx\ U freeze捆绑后根据请求挂起,python,python-2.7,flask,cx-freeze,Python,Python 2.7,Flask,Cx Freeze,我已经用Python制作了一个Flask应用程序,我想把它转换成一个用于分发的exe,为此我尝试使用cx\U freeze 当我从Python或Pycharm运行应用程序时,它工作得非常好,但在我将其打包后,每个请求都会挂起(在chrome中旋转)。我试着调试它,结果创建了一个新的flask应用程序,只有一个路由,没有其他依赖项,同样的事情也发生了 这是我制作的测试应用程序(testapp/app.py): 它的setup.py: from setuptools import find_pack
testapp/app.py
):
它的setup.py
:
from setuptools import find_packages
from cx_Freeze import setup, Executable
setup(
name='testapp',
description='Test Flask App',
packages=find_packages(),
include_package_data=True,
zip_safe=False,
install_requires=[
'Flask',
'waitress',
],
options={
"build_exe": {
"packages": [
"flask",
"waitress",
"threading",
"os",
],
'include_msvcr': True,
}
},
executables=[
Executable(
"run.py",
icon="icon.ico",
)
]
)
还有run.py
,它是我的入口点
from testapp.app import webapp
import sys
import waitress
if __name__ == "__main__":
PORT = sys.argv[1] if len(sys.argv) > 1 else 8080
waitress.serve(webapp, port=PORT)
我已经读了一些其他的问题,但它似乎总是最终成为一个模板问题,但这个应用程序没有使用模板,我的真实应用程序也没有
当我正常运行它时,我会得到下面的输出,页面会对我说“你好”
当我将其作为exe运行时,我会得到相同的控制台输出,但页面只是挂起
我使用的是flask==0.12
和cx-Freeze==5.0.1
关于如何调试这个有什么想法吗
编辑:
我注意到,在构建期间,我会收到很多关于缺少包的警告,但是如果我尝试将这些包添加到我的setup.py
,cx\U freeze会抛出无法导入它们的错误。但如果我无法导入它们,而我的应用程序显然需要它们,它是否应该无法正常运行
列表有点长,所以它在一个中,这最终是一个在cx\u Freeze5.0.1中的
,它现在被补丁在cx\u Freeze5.0.2中这最终是一个在cx\u Freeze5.0.1中的
,它现在被补丁在cx\u Freeze5.0.2中
from testapp.app import webapp
import sys
import waitress
if __name__ == "__main__":
PORT = sys.argv[1] if len(sys.argv) > 1 else 8080
waitress.serve(webapp, port=PORT)
Serving on http://Desktop-PC:8080
home