Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pyx27;无法执行脚本gui';_Python_Api_User Interface_Tkinter - Fatal编程技术网

Python Pyx27;无法执行脚本gui';

Python Pyx27;无法执行脚本gui';,python,api,user-interface,tkinter,Python,Api,User Interface,Tkinter,我用tkinter做了一个gui,它从开放的天气api获取天气数据并显示在屏幕上。 现在我想让它成为一个.exe。所以我使用pyinstaller来实现这一点,它构建到.exe时没有显示任何问题,但问题是当我尝试在dist目录中执行.exe时,它会出错 我曾经使用以下命令来构建它-pyinstaller--onefilegui.py 我甚至尝试了以下代码-pyinstaller--onefile-wgui.py 还是不走运 编辑: 我还运行了'pyinstaller--onefile-cgui.

我用tkinter做了一个gui,它从开放的天气api获取天气数据并显示在屏幕上。 现在我想让它成为一个.exe。所以我使用pyinstaller来实现这一点,它构建到.exe时没有显示任何问题,但问题是当我尝试在
dist
目录中执行.exe时,它会出错

我曾经使用以下命令来构建它-
pyinstaller--onefilegui.py

我甚至尝试了以下代码-
pyinstaller--onefile-wgui.py
还是不走运

编辑: 我还运行了'pyinstaller--onefile-cgui.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

回溯(最近一次呼叫最后一次):
文件“gui.py”,第2行,在
导入wforcast作为预测
文件“”,第991行,在“查找”和“加载”中
文件“”,第975行,在“查找”和“加载”中解锁
文件“”,第671行,在\u加载\u解锁
文件“c:\users\kakshipth\documents\coding\py\virtualauto\lib\site packages\PyInstaller\loader\pyimod03\u importers.py”,第493行,在exec\u模块中
exec(字节码、模块、指令)
文件“wforcast.py”,第48行,在
省道(“海得拉巴”)
文件“wforcast.py”,第33行,保存方式
以open(path_to_json,'w')作为数据:
FileNotFoundError:[Errno 2]没有这样的文件或目录:“practice\\coolshitzz\\weather\\data.json”
[1488]无法执行脚本gui
感谢您的帮助,
感谢

这里唯一的问题是,到源文件的相对路径变得无效,因此出现错误,所以有两种方法可以解决这个问题

第一种方式: 使用
pyinstaller-F-w gui.py
创建exe,并将exe复制到项目目录或所有相关路径将被标识的位置

第二种方式: 删除对相对路径的调用,并使用
pyinstaller-F-wgui.py创建一个exe,现在由于它没有依赖项或相对路径,因此在您的系统上应该可以正常工作

上面两个代码的作用与前面的代码相同,只是我把它缩短了,以便更快地键入

控制台只是用来识别出现的错误,您可以通过将
-c
替换为
-w
来摆脱控制台,或者按照上述方法使用与以前相同的代码

希望它解决了问题,如果有任何错误或疑问,一定要让我知道


干杯

你把exe复制到项目目录了吗?我想,我不需要把它复制到源文件所在的地方。但是我还是这样做了,我得到了同样的错误是的,你需要把它带到源文件所在的地方,否则,代码中说的路径是错误的,因此它不会执行,无论如何,试试这个代码
pyinstaller--onefile-cgui.py
并复制到项目目录,让我知道控制台中出现的错误。嘿,它可以工作。问题出在我导入的模块中,我错误地执行了其中一个函数,并且def中的路径是相对的,因此我的程序无法找到它。所以,一旦我取消了def呼叫。它现在工作得很好。但是有一个丑陋的终端窗口,上面有标签,有办法移除吗?谢谢,我发现了问题并修复了它。不过无论如何还是要谢谢你