【问题标题】:Pyinstaller onedir option - exe file outside the directoryPyinstaller onedir 选项 - 目录外的 exe 文件
【发布时间】:2020-03-23 22:53:12
【问题描述】:

最近我正在尝试使用 pyinstaller 从我的 Python 脚本创建一个可执行文件。一切都按预期工作。 我测试了两个选项:--onefile,它需要很长时间(如 20-30 秒)才能启动,因为它将所有内容解包到一个临时目录中。 --onedir 选项的启动速度要快得多(4 秒),但使用起来不是很舒服。当我将 exe 文件移到此目录之外时,程序不再起作用。 我的问题是:是否有可能使 exe 文件指向该目录位置?我想将所有 pyinstaller 文件保存在一个地方,并允许用户将 exe 文件放在他们想要的任何位置。 感谢您的帮助。

【问题讨论】:

    标签: python python-3.x anaconda pyinstaller executable


    【解决方案1】:

    让我们看一个真实的生产案例。每当您下载盗版游戏或软件的原始副本时,通常会将它们压缩在一起。当您解压缩它们时,会提取一个新文件夹,并且在该文件夹中还有很多其他文件夹。运行该软件只需双击.exe 文件。

    你的情况也一样。如果您将 exe 文件移到原始提取的文件夹之外,那么它根本不起作用。因此,解决方法是创建 exe 文件的快捷方式。

    希望这能澄清你的疑问:)

    【讨论】:

    • 非常感谢!我设法通过创建一个运行 exe 的 Windows 批处理文件找到了解决方法,但您的解决方案绝对更简单更好。
    • @cornisto 我对 Windows 批处理文件不太了解,但我猜你已经创建了一个脚本来运行 exe。您只是在批处理文件中传递exe文件的相对路径,对吗?如果是这样,那么这正是快捷方式的作用。如果我的假设是错误的,如果您能向我解释一下这项工作,我将不胜感激。谢谢:)
    • 当然,我刚刚制作了一个 .bat 脚本来运行 exe。现在我想知道为什么我没有想出捷径的想法。
    【解决方案2】:

    我认为您应该拥有该 exe 文件所需的其他一些文件,因此当您将 exe 文件移到目录之外时,它会给您带来错误。示例之一可能是 exe 程序需要 chrome 驱动程序,并且您已将其放置在该目录中。如果将 exe 程序移到外面,则需要将 chrom 驱动程序也放在新位置。希望对你有帮助,不然我们可以在任何地方使用不需要依赖其他文件的exe程序。

    【讨论】:

      【解决方案3】:

      捷径。创建 .exe 快捷方式。这样原始 .exe 将仍然在父目录中,但快捷方式可以放在任何地方

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-17
        • 2018-10-27
        • 2017-04-28
        • 2021-07-24
        • 2014-01-19
        • 2020-11-18
        相关资源
        最近更新 更多