我完成了我的第一个完整的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")]
)
答案 0 :(得分:3)
好吧,'packages'
包含包含其所有子模块的包,而'exclude'
将排除列出的模块。
在此处详细了解所有可能的值:http://cx-freeze.readthedocs.io/en/latest/distutils.html#build-exe。它是一个命令行选项列表,但它也适用于您的脚本。
还有很多其他选项允许包含和排除压缩模块,DLL二进制文件等。
希望这有帮助!