关于PIL.Image.open()搜索路径及Python象棋游戏图片放置的技术咨询
PIL.Image.open()的文件搜索路径
- 当仅传入文件名(无路径)时,
PIL.Image.open()会在Python进程的**当前工作目录(CWD)**中查找文件。 - 可通过执行以下代码查看当前工作目录:
import os print(os.getcwd())
解决Python游戏资源路径不一致问题
- 不要依赖当前工作目录,因为PyCharm的运行目录与手动执行脚本时的目录可能存在差异(PyCharm默认以项目根目录作为工作目录,而直接运行脚本时可能以脚本所在目录为CWD)。
- 推荐基于脚本文件的绝对路径定位资源,步骤如下:
- 获取当前脚本的绝对路径:
import os script_dir = os.path.dirname(os.path.abspath(__file__)) - 拼接资源文件的完整路径(假设资源放在项目根目录的
assets/images文件夹下):image_path = os.path.join(script_dir, "assets", "images", "your_piece.png") - 使用拼接好的路径调用
PIL.Image.open(image_path)
- 获取当前脚本的绝对路径:
- 不要将资源放在
venv或Scripts目录下,这些是虚拟环境的系统目录,建议在项目根目录创建独立的assets或resources文件夹统一管理资源。 - 若后续需要打包分发(如用PyInstaller),需确保资源文件被正确包含,可通过配置
spec文件或使用--add-data参数指定资源路径。
内容的提问来源于stack exchange,提问作者Lolulolul Coder
相关产品推荐
相关产品推荐

