cx_Freeze和Python的各种build_exe_options是什么?

时间:2017-03-16 19:19:01

标签: python python-3.x cx-freeze

我完成了我的第一个完整的python程序,并尝试创建一个exe。我成功构建了exe,但它运行并且什么也没做。我猜它没有包含所有包裹。我可以使用cx_Freeze中的 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")]
)

1 个答案:

答案 0 :(得分:3)

好吧,'packages' 包含包含其所有子模块的包,而'exclude'排除列出的模块。

在此处详细了解所有可能的值:http://cx-freeze.readthedocs.io/en/latest/distutils.html#build-exe。它是一个命令行选项列表,但它也适用于您的脚本。

还有很多其他选项允许包含和排除压缩模块,DLL二进制文件等。

希望这有帮助!