[Bug] Broken Linux symlink crashes Demo_Tree_Element.py
还没有人认领这个 Issue。
评估
调研方向
从 Demo_Tree_Element.py 开始,重点查看第 36 行,该行在将文件插入树中时使用了 os.stat(fullname)。使用包含损坏符号链接的目录重现该问题;当 demo 不再崩溃,并且受影响的条目在树中得到可见处理时,即视为完成。
由索引模型根据 Issue 内容生成。
描述
Type of Issue (Enhancement, Error, Bug, Question)
[Bug] Broken Linux symlink crashes Demo_Tree_Element.py
When running the program against a directory tree that contains a broken file symbolic link, it crashes with a "file not found" error. Python throws an exception that isn't handled:
Traceback (most recent call last):
File "Demo_Tree_Element.py", line 38, in
add_files_in_folder('', starting_path)
File "Demo_Tree_Element.py", line 34, in add_files_in_folder
add_files_in_folder(fullname, fullname)
File "Demo_Tree_Element.py", line 34, in add_files_in_folder
add_files_in_folder(fullname, fullname)
File "Demo_Tree_Element.py", line 36, in add_files_in_folder
treedata.Insert(parent, fullname, f, values=[os.stat(fullname).st_size], icon=file_icon)
FileNotFoundError: [Errno 2] No such file or directory: '/home/ran/projects/net_tools/samplicator-master/depcomp'
This was obvious when I ran it from the command line, but from the Demo Browser it just silently disappeared
Operating System
Ubuntu 20.04
PySimpleGUI Port (tkinter, Qt, Wx, Web)
print(sg)
<module 'PySimpleGUI' from '/usr/local/lib/python3.8/dist-packages/PySimpleGUI/init.py'>
(sg.version)
'4.60.5 Released 21-May-2023'
Versions
*** Version information copied to your clipboard. Paste into your GitHub Issue. ***
Python version: 3.8.10 (default, May 26 2023, 14:05:08)
[GCC 9.4.0]
port: tkinter
tkinter version: 8.6.10
PySimpleGUI version: 4.60.5
PySimpleGUI filename: /usr/local/lib/python3.8/dist-packages/PySimpleGUI/PySimpleGUI.py
Version information can be obtained by calling sg.main_get_debug_data()
Or you can print each version shown in ()
Python version (sg.sys.version)
'3.8.10 (default, May 26 2023, 14:05:08) \n[GCC 9.4.0]'
PySimpleGUI Version (sg.__version__)
'4.60.5'
GUI Version (tkinter (sg.tclversion_detailed), PySide2, WxPython, Remi)
tkinter
Your Experience In Months or Years (optional)
Years Python programming experience 2
Years Programming experience overall 54
Have used another Python GUI Framework? (tkinter, Qt, etc) (yes/no is fine)
Anything else you think would be helpful?
Troubleshooting
These items may solve your problem. Please check those you've done by changing - [ ] to - [X]
- Searched main docs for your problem www.PySimpleGUI.org
- Looked for Demo Programs that are similar to your goal. It is recommend you use the Demo Browser! Demos.PySimpleGUI.org
- None of your GUI code was generated by an AI algorithm like GPT
- If not tkinter - looked for Demo Programs for specific port
- For non tkinter - Looked at readme for your specific port if not PySimpleGUI (Qt, WX, Remi)
- Run your program outside of your debugger (from a command line)
- Searched through Issues (open and closed) to see if already reported Issues.PySimpleGUI.org
- Have upgraded to the latest release of PySimpleGUI on PyPI (lastest official version)
- Tried using the PySimpleGUI.py file on GitHub. Your problem may have already been fixed but not released
Detailed Description
When running the program against a directory tree that contains a broken file symbolic link, it crashes with a "file not found" error. Python throws an exception that isn't handled:
Traceback (most recent call last):
File "Demo_Tree_Element.py", line 38, in
add_files_in_folder('', starting_path)
File "Demo_Tree_Element.py", line 34, in add_files_in_folder
add_files_in_folder(fullname, fullname)
File "Demo_Tree_Element.py", line 34, in add_files_in_folder
add_files_in_folder(fullname, fullname)
File "Demo_Tree_Element.py", line 36, in add_files_in_folder
treedata.Insert(parent, fullname, f, values=[os.stat(fullname).st_size], icon=file_icon)
FileNotFoundError: [Errno 2] No such file or directory: '/home/ran/projects/net_tools/samplicator-master/depcomp'
This was obvious when I ran it from the command line, but from the Demo Browser it just silently disappeared
Code To Duplicate
The Demo_Tree_Element.py file included with the package.
This pre-formatted code block is all set for you to paste in your bit of code:
# Paste your code here
To fix, replace line 36 with something like:
try:
treedata.Insert(parent, fullname, f, values=[os.stat(fullname).st_size], icon=file_icon)
except:
treedata.Insert(parent, fullname, f, values=["???? error"], icon=file_icon)
Screenshot, Sketch, or Drawing
Watcha Makin?
If you care to share something about your project, it would be awesome to hear what you're building.
- 主要语言
- Python
- 星标
- 13.8k
- 派生
- 1.8k
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
PySimpleGUI/PySimpleGUI 的其他 Issue
-
Bug Done - Install Dev Build (see docs for how) Platform Specific Issue - Linux Port - TK
难度 2/5 1-3 小时 新手友好度 68/100
PySimpleGUI/PySimpleGUI#6904 · 15 条评论 ·
-
Bug Demo Programs Done - Install Dev Build (see docs for how) Interoperability Port - TK workaround available
难度 2/5 1-3 小时 新手友好度 68/100
PySimpleGUI/PySimpleGUI#6900 · 1 条评论 ·
-
Done - Install Dev Build (see docs for how) enhancement
难度 2/5 1-3 小时 新手友好度 62/100
PySimpleGUI/PySimpleGUI#3251 · 12 条评论 ·
-
难度 3/5 1-2 天 新手友好度 74/100
PySimpleGUI/PySimpleGUI#6906 · 1 条评论 · 1 个 reaction ·
-
Bug Done - Install Dev Build (see docs for how) Port - TK
难度 3/5 1-2 天 新手友好度 45/100
PySimpleGUI/PySimpleGUI#6902 · 1 条评论 ·
查看 PySimpleGUI/PySimpleGUI 的全部 Issue
相似的 Issue
-
fix: inaccuracy ⚠️
难度 2/5 1-3 小时 新手友好度 72/100
uabrc/uabrc.github.io#1255 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 84/100
ethereum-optimism/factory#64 ·
-
难度 2/5 1-3 小时 新手友好度 90/100
duckdb/duckdb-python#627 ·
-
难度 2/5 1-3 小时 新手友好度 68/100
-
documentation
难度 1/5 1 小时以内 新手友好度 78/100
Qiskit/qiskit-addon-sqd#376 ·