【问题标题】:doubts on pyinstaller and making a .exe file as a service on windows对 pyinstaller 的疑问并将 .exe 文件作为 Windows 上的服务
【发布时间】:2020-07-08 08:23:13
【问题描述】:

我为我的 python 程序创建了一个 GUI,并使用 pyinstaller 将其作为 .exe。

我的 app.py 导入了 config.py 模块,其中包含一些全局变量、用户名和密码,到目前为止我已经对它们进行了硬编码。

是否可以使用 GUI 为 config.py 中的变量实际赋值并在下次执行应用程序时保存它们(在 config.py 中)?但是一旦我创建了一个 .exe 文件,我就找不到我的 config.py

当我执行 pyinstaller app.py 时,我在 /dist 中看不到我的模块。但是docs 这么说:-

单文件夹捆绑包的另一个优点是,当您更改 代码,只要它导入完全相同的依赖集,你 只能发送更新后的 myscript 可执行文件。

找不到模块时如何更改代码?

我想将此 .exe 文件作为服务。 (启动需要输入即服务的 GUI 不是很专业吗​​?)

我想实现以下目标:-

  1. 在 .exe 首次启动期间提示用户输入用户名、密码和其他变量的 GUI 文件,然后将它们保存在 config.py 中(一旦我制作了 .exe 文件就找不到了)。
  2. 然后在 config.py 作为服务运行时使用此信息进一步执行。
  3. 当应用程序(即.exe文件)再次执行时(这意味着用户想要更改config.py中的一些数据),停止当前正在运行的服务,然后使用更新的config.py数据运行服务.

您能帮我解决上述问题吗?

提前感谢您的时间:)

【问题讨论】:

    标签: python tkinter service exe


    【解决方案1】:

    我个人会

    • 创建 2 个 exe:一个用于服务,一个用于 gui
    • 将配置保存在文本文件中,而不是 py 中(如果嵌入到 exe 中,则无法修改)。我建议看看 configparser.ConfigParser() 例如。
    • 让服务定期重新读取配置

    关于 pyinstaller 问题,请提供您的构建命令

    【讨论】:

    • 我使用的命令是pyinstaller.exe --onefile -icon=file.ico app.py
    • 我猜你的意思是--icon。你在 dist 文件夹中看到 app.exe 吗?这是由 --onefile 选项产生的。如果您想查看引用的评论是否说,请改用 --onedir
    • 是的,我的错,我的意思是 --icon=file.ico,我使用了 --onedir 选项。我仍然无法在 \dist\app\ 目录中找到我创建的模块。我只能看到一些python核心库和.exe文件。
    • 模块是app.py导入的吗?
    • 我只使用 --one-file 所以我拿了我的一个应用程序并将其设为 onedir。和你一样:一个exe和一堆库。我阅读了整章,我相信好的解释是只有项目外部的依赖项在文件夹中。属于该项目的 .py 文件是 exe 的一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    • 2013-06-12
    • 2015-02-13
    • 1970-01-01
    相关资源
    最近更新 更多