【问题标题】:(Pyinstaller) creates .py copy instead of .exe copy(Pyinstaller) 创建 .py 副本而不是 .exe 副本
【发布时间】:2018-06-08 13:01:38
【问题描述】:

我在 Python 中为 Windows 创建了一个简单的程序(使用 Pyinstaller 转换为 .exe),它将自身复制到 Program Files 中创建的文件夹中。该程序运行完美,除了一个无法预料的细节,当文件将自身复制到目录时,它将 .exe 扩展名替换为 .py ,这使文件无法正常工作。为什么会这样?

这里有一个非常简单的例子来说明问题:

import os
import shutil

filePath = os.path.abspath(__file__)
folder = 'some folder in C'

shutil.copy(filePath, folder)

在 Pyinstaller 中使用以下命令将其转换为 .exe:

Pyinstaller --onefile name-of-file.py

当您运行程序时,它会创建一个 .py 副本...

【问题讨论】:

  • 这可能有帮助吗? stackoverflow.com/questions/2632199/…
  • __file__是正在执行的模块的路径,是一个.py文件。如果您将 .exe 文件命名为与您的模块相同,则可以换掉文件扩展名。
  • 我该怎么做?是上面 John Kane 链接中描述的“程序”吗?
  • 我该怎么做?是上面 John Kane 链接中描述的“程序”吗?

标签: python pyinstaller


【解决方案1】:

Python 是一种解释型语言。 PyInstaller/Py2exe/... 正在压缩所有 python 模块并添加可执行文件头以使 exe 文件可执行。

当您运行 exe 时,所有 python 模块都被提取到一个临时目录并从那里执行。

您可以使用sys.executable,获取exe的路径。更多细节文档here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多