Python FileNotFoundError, даже если файл есть

Дерево каталогов моего проекта выглядит примерно так:

      build
----fonts
--------Roboto Bold.ttf
----main.py

Следующие ошибки кода отсутствуют,

      from pyglet import font
font.add_file("fonts\\Roboto Bold.ttf")

Также пробовал этот код ,

      import os
from pyglet import font
font.add_file(str(os.getcwd())+"\\fonts\\Roboto Bold.ttf")

ошибка есть,

      Traceback (most recent call last):
  File "{full_dir_name}\build\main.py", line 25, in <module>
    font.add_file(str(os.getcwd())+'\\fonts\\Roboto Bold.ttf')
  File "C:\python-3.8.5-amd64\lib\site-packages\pyglet\font\__init__.py", line 183, in add_file
    font = open(font, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: '{full_dir_name}\\fonts\\Roboto Bold.ttf'

Я пробовал примерно день, а также видел здесь другие сообщения, но не смог решить ...

Я сомневаюсь, что проблема не в моем коде, а в "pyglet". Мне срочно нужен совет .

Спасибо

1 ответ

Путь к файлу ресурса (изображение, шрифт, звук и т. д.) должен относиться к текущему рабочему каталогу. Рабочий каталог, возможно, отличается от каталога файла python.

Имя и путь к файлу можно получить__file__. Текущий рабочий каталог можно получить с помощьюos.getcwd(). Если файл находится в подпапке файла python (или даже в той же папке), вы можете получить каталог файла и присоединиться (os.path.join()) относительный путь к файлу. например:

font.add_file(str(os.getcwd())+"\\fonts\\Roboto Bold.ttf")

      font.add_file(os.path.join(os.path.dirname(os.path.abspath(__file__)), "fonts/Roboto Bold.ttf"))
Другие вопросы по тегам