私は現在、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が "怠け者の輸入品"を扱う方法ですが、会話は通常「これをしたいならフラスコを使わないでください」と終わります。それは私にとって実行可能な解決策ではないので、誰かが助けてくれればそれは大いに感謝するだろう。