双击运行Python可执行脚本时,打开文件意外退出的原因?
解决Python脚本双击运行时意外退出的问题
问题原因
双击运行Python脚本时,系统的当前工作目录并非脚本所在的目录。尽管test.txt和脚本在同一文件夹,但此时Python会在默认工作目录(比如Windows的C:\Users\[你的用户名])寻找该文件,找不到就触发FileNotFoundError异常,而双击启动的窗口会在异常发生后直接关闭,导致你看不到错误信息。
而通过终端或IDLE运行时,工作目录就是脚本所在路径,所以能正常读取文件。
解决办法
方案1:使用绝对路径定位文件
利用__file__变量获取脚本的绝对路径,拼接出test.txt的正确位置,确保无论从哪个目录运行都能找到文件:
import os print("hello world!") # 获取脚本所在目录的绝对路径 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接得到test.txt的完整路径 file_path = os.path.join(script_dir, "test.txt") file = open(file_path, "r") x = input()
方案2:添加异常捕获与窗口停留
如果需要保留相对路径,同时希望出错时能看到提示并停留窗口,可以添加异常处理逻辑:
print("hello world!") try: file = open("test.txt", "r") except Exception as e: print(f"运行错误:{e}") print("按任意键退出...") input() x = input()
这样即使出现错误,窗口也会显示具体信息,等待用户输入后才关闭。
方案3:打包为独立可执行文件
针对非编程用户,最友好的方式是将脚本打包成.exe文件,无需用户安装Python环境,且能自动处理路径问题:
- 安装打包工具:
pip install pyinstaller - 在脚本所在目录打开终端,执行打包命令:
pyinstaller --onefile helloworld.py - 打包完成后,
dist文件夹内会生成helloworld.exe,用户双击即可正常运行。
内容的提问来源于stack exchange,提问作者ithmath
相关产品推荐
相关产品推荐

