2017-05-20 4 views
1

PythonでFlaskアプリケーションを作成しましたが、これは配布用にexeに変えたいので、cx_freezeを使用しようとしています。Flaskアプリがcx_freezeでバンドルされた後にリクエスト時にハングアップ

私はPythonまたはPycharmからアプリケーションを実行すると完全に動作しますが、バンドルした後はすべての要求がハングアップします(クロムのスピン)。私はそれをデバッグしようとしただけで、1つのルートと他の依存関係のない新しいフラスコアプリを作成してしまい、同じことが起こります。

ここで私が作ったテストアプリ(testapp/app.py)です:

from flask import Flask 

# Create flask app 
webapp = Flask(__name__) 

@webapp.route('/') 
def home(): 
    print "home" 
    return 'hello there' 

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) 

私は他にもいくつか質問がありますが、いつも終わりそうですテンプレートの問題ですが、このアプリはテンプレートを使用しておらず、どちらも私の本当のアプリです。私に

私は通常、それを実行すると、私は次の出力を取得し、ページが「こんにちは」と言う

Serving on http://Desktop-PC:8080 
home 

私はexeファイルとしてそれを実行すると、私は同じコンソール出力を得るが、ページがちょうどハングします。

私はflask==0.12cx-Freeze==5.0.1

私はこの1つをデバッグする方法上の任意のアイデアを使用していますか?

編集:

私は、ビルド時に、私は不足しているパッケージに関する警告の多くを得ることに気付きましたが、私は私のsetup.pyにそれらのパッケージを追加しようとした場合、cx_freezeはできないというエラーがスローされますそれらをインポートします。しかし、私はそれらをインポートすることはできませんし、私のアプリは明らかにそれらを必要とする場合、正常に実行する必要はありませんか?

リストは少し長いので、それはgist

答えて

0

にだこれは今cx_Freeze 5.0.2にパッチが適用されcx_Freeze 5.0.1bugことになりました。

関連する問題