2017-03-16 6 views
1

私は最初の完全なpythonプログラムを終了し、exeファイルを作成しようとしています。私は正常にexeファイルをビルドしましたが、実行され、何もしません。私はそれがすべてのパッケージを含んでいなかったと推測しています。私はbuild_exe_optionsのcx_Freezeで指定することができますが、パッケージの違いはを除きます。cx_FreezeとPythonのさまざまなbuild_exe_optionsは何ですか?

これらは私のプログラムの下

import os 
import smtplib 
from datetime import datetime, timedelta 
from ftplib import FTP_TLS 
from email.mime.text import MIMEText 
from email.mime.multipart import MIMEMultipart 

で、私が使用するすべての輸入をしている私の現在の設定ファイルである私は、このような何かを行うことができます推測している

from cx_Freeze import setup, Executable 

setup(
    name = "FTPConnect", 
    version = "1.0", 
    description = "Connects to FTP to download docs", 
    executables = [Executable("main.py")] 
) 

、正しいですか?

from cx_Freeze import setup, Executable 

# Dependencies are automatically detected, but it might need fine tuning. 
build_exe_options = {"packages": ["os", "smtplib", "datetime", "ftplib", "email.mime.text", "email.mime.multipart" ], "excludes": []} 

setup(
     name = "FTPConnect", 
     version = "1.0", 
     description = "Connects to FTP to download docs", 
     options = {"build_exe": build_exe_options}, 
     executables = [Executable("main.py")] 
) 
+0

私はちょうど似たような難しさを経験しました(https://stackoverflow.com/questions/45734926/build-a-exe-for-windows-from-a-python-3-script-importing-pyqtgraph-and-開く)。最終的にいくつか改善がありましたか? –

答えて

3

まあ、'packages''exclude'記載されているモジュールを除外する一方は、そのすべてのサブモジュールでパッケージが含まれます。

すべての可能な値の詳細については、http://cx-freeze.readthedocs.io/en/latest/distutils.html#build-exeをご覧ください。これはコマンドラインオプションのリストですが、あなたのスクリプトでもうまくいきます。

ZIPモジュール、DLLバイナリなどを含めるか除外することができる多くのオプションがあります。

希望すると便利です。

+0

パッケージの代わりに「インクルード」を使用すると、パッケージの特定の部分だけをインポートできますか?パッケージ全体が必要な場合は、パッケージを使用するだけですか?なぜモジュールを除外したいのですが、除外しなければならないのでしょうか? –

+0

時々サードパーティのモジュールが必要としないたくさんの駄目をインポートします。これらはあなたのexeを爆破します。それらを除外することによって、彼らはあなたのexeから除外されます:) – linusg

+0

意味があります。ありがとう! –

関連する問題