私は私のpythonプロジェクトのための.exeを生成しようとしています。生成された.exeを開くとエラーが表示されます。これは、私の含まれているモジュールwordcloud
が通常、そのソースコードのすぐ隣にあるファイルを開こうとしているからです。cx_freezeに必要なモジュールに非pythonファイルを含める?
モジュールは次のようになります(C:/python/Lib/site-packages/wordcloud
)。
__init__.py
__pycache__/
color_from_image.py
DroidSansMono.ttf
query_integral_image.pyd
stopwords
wordcloud.py
wordcloud_cli.py
(C:/.../my-application/builds/0.1/my-app/my-app.exe/wordcloud
に見られるような)に生成cx_freeze exeファイル内のモジュールは、次のようになります。
color_from_image.pyc
query_integral_image.pyc
wordcloud.pyc
__init__.pyc
あなたはそれを知らなかった場合は、cx_freezeは、.exeファイル自体の内部世代のすべてのモジュールを含んでいますerated .exeは、実行可能ファイルでもアーカイブでもあります。
このgeneratec exe/archiveでは、元のソース内にあるstopwords
ファイルを追加したいと思います。これは可能ですか?
この質問とcx_freezeのinclude_files
オプションの大きな違いは、ファイルが結果のフォルダにはならず、結果の.exeファイル内で、wordcloud依存のすぐ隣にあるはずです。
編集:私はinclude_files
をパスとして.exeを使用しようとしましたが、期待通りに動作しません。
error: build\exe.win32-3.3\my-app.exe: Cannot create a file when that file already exists
zipファイルについては、便利です。https://docs.python.org/3/library/zipfile.html – shuttle87
@ shuttle87 'open'を呼び出すコードは私のものではありません。依存関係を自分自身で作成するか、ビルド中にパッチを適用する:/ – Azeirah