【问题标题】:How to create .exe from python script with modules and dependent files如何使用模块和依赖文件从 python 脚本创建 .exe
【发布时间】:2015-08-24 22:15:54
【问题描述】:

我想从我的 python 脚本创建一个可执行的 .exe 文件。我已经尝试了很多教程和网上解释的方法来做到这一点。我已经尝试过 py2exe pyInstaller 但我无法创建一个有效的可执行文件。 我使用 Enthought Canopy 作为我的编程环境。 代码中导入的模块如下:

import Tkinter as tk
from Tkinter import Text
from PIL import ImageTk, Image
import pyttsx
import pickle

我正在使用我通过 pickle 创建的文件中的对象,所以我也需要它们。假设我有 2 个名为 a.fil b.fil 的文件

当我运行 .exe 文件时,它会立即显示命令提示符并直接将其关闭。

Traceback (most recent call last):
    File "code.py", line 4 in <module>
    File "Tkinter.pyc", line 38 in <module>
    File "FixTk.pyc", line 65 in <module>
    File "_tkinter.pyc", line 12 in <module>
    File "_tkinter.pyc", line 10 in _load
Import Error: DLL load failed : %1 is not a valid win32 application

【问题讨论】:

  • py2exe 和 pyInstaller 到底有什么问题?
  • 可执行文件 (.exe)
  • 它是否会给您一些错误并且无法完全生成可执行文件,或者生成的可执行文件不满足您的要求?为了让人们帮助您,您需要更详细地解释究竟什么是行不通的。最终,您会使用正确的工具,因此要解决问题,您需要解释究竟是什么不适合它们。
  • 当我运行 .exe 文件时,它会立即显示命令提示符并直接将其关闭。回溯(最后一次调用):文件“code.py”, 文件“Tkinter.pyc”中的第 4 行, 文件“FixTk.pyc”中的第 38 行, 文件“_tkinter”中的第 65 行.pyc”, 文件“_tkinter.pyc”中的第 12 行,_load 导入错误中的第 10 行:DLL 加载失败:%1 不是有效的 win32 应用程序

标签: python executable py2exe pyinstaller


【解决方案1】:

只有 py2exe。只需阅读手册。 py2exe 永远不会复制所有的 DLL,因为它是非法的,因为窗口的东西是微软的知识产权,复制它违反了版权法。如果您需要 DLL,请自行复制它们。如果您不知道哪些使用 Dependency Walker。

【讨论】:

  • 我得到:回溯(最近一次调用最后一次):文件“code.py”, 文件“Tkinter.pyc”中的第 4 行, 文件“FixTk”中的第 38 行.pyc”, 文件“_tkinter.pyc”中的第 65 行, 文件“_tkinter.pyc”中的第 12 行,_load 中的第 10 行 导入错误:DLL 加载失败:%1 不是有效的 win32 应用程序 I认为问题有点不同
【解决方案2】:

尝试更改 py2exe 的设置。或者,阅读手册。 py2exe 无法复制所有 DLL,因为就像 Alex Ivanov 所说:

py2exe 永远不会复制所有 DLL,因为它是非法的,因为窗口内容是 Microsoft 的知识产权,复制它违反了版权法。如果您需要 DLL,请自行复制它们

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多