【发布时间】:2020-09-08 14:31:20
【问题描述】:
我用 tkinter 制作了一个 gui,它从开放的天气 api 获取天气数据并显示在屏幕上。
现在我想把它变成一个.exe。所以我使用 pyinstaller 来做到这一点,它构建到 .exe 没有显示任何问题,但问题是当我尝试在 dist 目录中执行 .exe 时出错。
我曾经按照命令来构建它 - pyinstaller --onefile gui.py
我什至尝试了以下代码 - pyinstaller --onefile -w gui.py
还是没有运气。
编辑: 我还运行了`pyinstaller --onefile -c gui.py',终端窗口打开,然后转储一堆文本,然后关闭。 转储:
Traceback (most recent call last):
File "gui.py", line 2, in <module>
import wforcast as forcast
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "c:\users\kakshipth\documents\coding\py\virtualauto\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
exec(bytecode, module.__dict__)
File "wforcast.py", line 48, in <module>
save_way('Hyderabad')
File "wforcast.py", line 33, in save_way
with open(path_to_json, 'w') as data :
FileNotFoundError: [Errno 2] No such file or directory: 'practice\\coolshitzz\\weather\\data.json'
[1488] Failed to execute script gui
任何帮助表示赞赏, 谢谢
【问题讨论】:
-
你把exe复制到项目目录了吗?
-
我想,我不需要将它复制到我的源文件所在的位置。但我还是这样做了,我得到了同样的错误
-
是的,你需要把它带到源文件所在的地方,否则代码中说的路径是错误的,因此它不会执行,无论如何试试这个代码
pyinstaller --onefile -c gui.py并复制到项目中目录并让我知道控制台中出现的错误。 -
嘿,它有效。问题出在我导入的模块中,我错误地执行了其中一个函数,并且该 def 中的路径是相对的,所以我的程序无法找到它。所以,一旦我删除了 def 调用。它现在完美运行。但是有一个丑陋的终端窗口,上面有标签,有没有办法删除它?
标签: python api user-interface tkinter