2017-02-05 14 views
0

私は現在、Python-FlaskのWebサイト用にスタンドアロンのWindows実行ファイルを作成しようとしています。私はcx_freezeとPyInstallerを試しましたが、毎回インポートに関する問題が発生しました。具体的には、私は以下のトレースバックを得る:これらのツールのFlaskパッケージのImportError - cx_freezeとPyinstaller

* Restarting with stat 
* Debugger is active! 
* Debugger pin code: 941-349-200 
* Running on http://0.0.0.0:8080/ (Press CTRL+C to quit) 
Traceback (most recent call last): 
    File "C:\Python27\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 12, in <module> 
    __import__(name + "__init__") 
    File "C:\Python27\lib\site-packages\cx_Freeze\initscripts\Console.py", line 24, in <module> 
    exec(code, m.__dict__) 
    File "runserver.py", line 7, in <module> 
    File "C:\Python27\lib\site-packages\flask\app.py", line 841, in run 
    run_simple(host, port, self, **options) 
    File "C:\Python27\lib\site-packages\werkzeug\serving.py", line 706, in run_simple 
    reloader_type) 
    File "C:\Python27\lib\site-packages\werkzeug\_reloader.py", line 263, in run_with_reloader 
    reloader.run() 
    File "C:\Python27\lib\site-packages\werkzeug\_reloader.py", line 144, in run 
    self.extra_files): 
    File "C:\Python27\lib\site-packages\werkzeug\_reloader.py", line 22, in _iter_module_files 
    filename = getattr(module, '__file__', None) 
    File "C:\Python27\lib\site-packages\email\__init__.py", line 79, in __getattr__ 
    __import__(self.__name__) 
ImportError: No module named message 

の両方が含まれるように、正確なモジュールを指定するための方法を持って、ケースにはツールが必要になりますすべての検出に失敗しました。

python cxfreeze runserver.py --target-dir DB --include-modules=message,email 

とpyInstallerので:私は他の方法の中で、次のコマンドでcx_freeze走ってきました

python pyinstaller.py runserver.py --debug --onedir --hidden-import=message --hidden-import=email 

が、何も働いていません。 cx_freezeがすべてを生成した後、電子メールとメッセージの.pycファイルが存在し、それらを削除すると、他のエラーが発生しますが、何らかの理由でこの部分では不十分です。

私は自分自身でpythonを使ってサイトを正常に実行することができます。サイトを起動するとエラーが発生します。

私はこのバグについて研究していますが、これまで述べてきたいくつかの問題がありましたが、それが解決されたときはいつでも解決するようなことはありません。 werkzeugが "怠け者の輸入品"を扱う方法ですが、会話は通常「これをしたいならフラスコを使わないでください」と終わります。それは私にとって実行可能な解決策ではないので、誰かが助けてくれればそれは大いに感謝するだろう。

答えて

0

をいくつかの行をコメントアウトして固定されています。私はspecファイルに次のように行なったし、それが

hiddenimports=['email.mime.message', 'email.mime.image', 'email.mime.text', 'email.mime.multipart', 'email.mime.nonmultipart', 'email.mime.base', 'email.mime.audio'] 

または何も虚偽

にデバッグを設定している作品を働きました
関連する問題