为啥当我更改我在 python 中使用 cx_freeze 创建的 exe 中的 py 文件夹时它没有改变?

Posted

技术标签:

【中文标题】为啥当我更改我在 python 中使用 cx_freeze 创建的 exe 中的 py 文件夹时它没有改变?【英文标题】:Why does it not change when I make changes to the py folder in exe that I created using cx_freeze in python?为什么当我更改我在 python 中使用 cx_freeze 创建的 exe 中的 py 文件夹时它没有改变? 【发布时间】:2020-05-13 10:13:33 【问题描述】:

我使用 cx_freeze 将 python 文件转换为 exe。以下是 setup.py 文件。当我运行 hello.exe 时,输出是这样的。 '你好兄弟 !!!' 但是当我更改 hi.py 文件中的“早上好”并运行 hello.exe 时,“你好兄弟!!!”它出现。 为此创建 exe 后,我应该在设置文件中做什么来更改 hi.py?

setup.py

from cx_Freeze import setup, Executable
setup(name="hello",
      version="0.1",
      description="hellov1",
      executables=[Executable("hello.py")],
      )

hi.py

print("Hello Brother!!!")

hello.py

import cx_Freeze
import hi

【问题讨论】:

【参考方案1】:

因为 .py 文件会变成 exe 并且编辑起来会有点复杂。但不是那个 hi.py 而是尝试制作自己的数据文件。基础只是一个文本文件,所以很容易。而且那个可悲的数据库将没有代码并且可以很容易地编辑之后也会影响您的代码。

hello.py 将如下所示:

#import cx_Freeze #// I do not know what this do. You know
from hi import DataBase, Logic

# Make shore that base is take it
DataBase.GetDataBase()
# Now make shore to import data base library updated
from hi import dataBaseLib

# Hello message
Logic.Hello(dataBaseLib["hello_message"])

hi.py 将如下所示:

dataBaseFile = "custom_data.kmb_bey"
dataBaseLib = 

class Logic:
    def Hello(msg):
        print(msg)

class DataBase:
    def GetDataBase(fileName=dataBaseFile):
        try:
            DataBase.ReadFile(fileName)
        except FileNotFoundError:
            DataBase.WriteFile(fileName)
            DataBase.ReadFile(fileName)
    
    def WriteFile(fileName):
        with open(fileName, "w") as file:
            file.write("""#// Custom Data Base for KMB_Bey
hello_message=Hello Brother!!!""")

    def ReadFile(fileName):
        with open(fileName, "r") as file:
            line = file.readline()
            
            while line:
                if "=" in line:
                    x = line.strip().split("=")
                    data, info = x[0], x[1]
                    if data not in dataBaseLib.keys():
                        dataBaseLib[data] = info
                line = file.readline()

无论文件 custom_data.kmb_bey 是否存在,蜜蜂 sa 都无关紧要。如果不存在,则将创建该文件,并且您可以在 = 之后更改任何 x 并且 x 将是在您的项目中显示的新值。 (您可以使用任何文本编辑器编辑该文件)

你回家的代码会帮助你。我只是直接在浏览器上写它,我还没有测试它。但我坚持会工作 90%。

【讨论】:

以上是关于为啥当我更改我在 python 中使用 cx_freeze 创建的 exe 中的 py 文件夹时它没有改变?的主要内容,如果未能解决你的问题,请参考以下文章

当我在 wp_options 中更改 siteurl 时,我的本地网站仍然有效。为啥?

为啥当我在平移单元格时更改 UIImageView 的图像时,整个视图会重置一秒钟?

为啥 Visual Studio 不将我的更改应用于 HTML 文件?

为啥 Bindinglist 在数据库更改后不更新?

为啥我在更改 NaN 值后得到 RecursionError

为啥当我在同一行中编辑另一个单元格时,此数据表单元格会恢复为旧值?