Python 文件 (.py) 转换为 .exe 无法执行 (Python 3.4 + cx_Freeze)

Python file (.py) converted to .exe fails to execute (Python 3.4 + cx_Freeze)

我转换了简单的 "Hello world ... press enter" 脚本,并使用 cx_Freeze 模块将其转换为 .exe。 运行没问题。当我尝试转换 littlebit 复杂脚本并 运行 它时,我遇到了问题。脚本本身 运行 很完美,但 .exe 无法运行。

症状:.exe启动,命令行闪烁一次,没有任何反应。

脚本结构:仅使用 os 模块和 sys 模块。

脚本功能:基本上读写 .txt 文件

脚本流程: 1.更改cwd 2. 打开.txt 3. 读取 .txt 到列表 4.更改列表中特定字符串所在的单元格 5. 将列表写回文件 6. closes 文件 7. 等待用户结束 (sys.stdin.readline())

我想不通哪里出了问题。

import os
import sys

#change cwd
os.chdir('S:/user_name/')       

#locate the line where "sertain_string: False" is
file = open('Test_dir/test.txt', 'r+')   
lines= file.readlines()
file.close()

x = 0
while(lines[x] != "certain_string: False\n"):
    x = x + 1
    continue
else:
    print("certain_string is on line", + x)
print("\n")

#Read the lines to the list
file = open('Test_dir/test.txt', 'r+')    
lines = fiel.readlines()
file.close()
print("\n")

#Change the cell where "certain_string: false" is to "certain_string: True"
lines[x] = 'certain_string: True\n'

print("\n")

#write the list back to the file
file = open('Test_dir/test.txt', 'w+')    
file.writelines(lines)
file.close()
print("Done... press enter:")

r = sys.stdin.readline()

I 运行 来自命令行的 .exe 文件。

错误报告:

cf_freeze console.py line 26: 
Code = importer.get_code(moduleName)
zipimport.ZipImportError: Can't find module 'client_v.0.02__main__'. 

我不明白这个。它试图从 .zip 文件中找到 client_v.0.02__main__ 模块,这是在 .py 到 .exe 转换期间创建的模块库。 我的 .py 文件名为 "Client_v.0.02"。

我想通了。我的脚本文件名是问题所在。在转换过程中,cx_freeze 制作了模块库 .zip,但脚本 main 模块的位置受名称影响。名称中的一个点为库 .zip 文件创建了一个子目录,因此 main 的路径是错误的,无法找到。