Arhn - архитектура программирования

Почему freesansbold.ttf не может быть найден после того, как я вставил library.zip pygame

C:\Users\ABDUL HAIYAN\Desktop\Programming\Python\Tic Tac Toe\dist>tictactoe
    pygame 2.0.1 (SDL 2.0.14, Python 3.8.8)
    Hello from the pygame community. https://www.pygame.org/contribute.html
    Traceback (most recent call last):
    File "tictactoe.py", line 181, in <module>
    File "tictactoe.py", line 47, in game_opening
    File "tictactoe.py", line 60, in draw_status
    File "pygame\pkgdata.pyc", line 84, in getResource
    FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\ABDUL HAIYAN
    \\Desktop\\Programming\\Python\\Tic Tac Toe\\dist\\library.zip\\pygame\\freesans
    bold.ttf'

Файлы уже там:

Файлы уже там


  • Не уверен, но я не думаю, что pygame может загружать что-то из zip-файлов. 22.03.2021
  • Starbuck5 прав. Вы должны читать файлы вот так если вы хотите, чтобы Python видел их в .zip (.zip не работает как папка для Python). 22.03.2021

Ответы:


1

Я рекомендую вам прочитать эту страницу, чтобы ознакомиться с модулем pygame.font. .

3 способа получить файл:

1. Разархивируйте нужный файл.

В этом случае вы должны открыть .zip с помощью Python, затем извлечь файл .ttf, вы откроете его / прочитаете, как хотите, а затем удалите извлеченный файл шрифта.

Если вы хотите, чтобы Python открывал файл внутри файла .zip, вам следует использовать ZipFile такой модуль:

import zipfile # needed to extract the font file
import pygame

archive = zipfile.ZipFile('files.zip', 'r') # the .zip containing your files
font_file = archive.open('font.ttf') # the font.ttf file is ready to be read
archive.close()

pygame.init()
font = pygame.font.Font(font_file, 20) # the font is initialised

... # do some stuff


2. Используйте pygame.font.SysFont.

Этот модуль импортирует шрифт из системных шрифтов (т. е. шрифтов, доступных в Word и т. д.).

Синтаксис:

pygame.font.SysFont('font name', font_size)

Например:

font = pygame.font.SysFont('Comic Sans Ms', 20)

В этом случае вам даже не нужен файл .ttf.


3. Разархивируйте папку при запуске вашей программы

Конечно! Зачем ты архивируешь папку? Распаковка занимает буквально несколько секунд...
Или вы можете просто поместить файлы в обычную папку вместо .zip.

22.03.2021
  • Но я все еще знаю, куда вставить этот код, если я вставлю его, он покажет ошибку 23.03.2021
  • Какая ошибка? ZipFile есть в стандартной библиотеке, но, возможно, его нет в более старых версиях. (это может быть причиной) - Если вы протестируете только этот код, он работает 23.03.2021
  • @AbdulHaiyan Не используйте шрифт в качестве объекта шрифта (шрифт на самом деле является содержимым файла). - Я думаю, что это источник ошибки. 24.03.2021
  • @AbdulHaiyan Я отредактировал свой ответ - надеюсь, это поможет вам больше. 24.03.2021
  • Я тестирую простой проект, так как у меня есть свободное время, поэтому я не всегда буду свободен, поэтому отвечу поздно, и главное, я скопировал этот исходный код: techvidvan.com/tutorials/python-game-project-tic-tac-toe и работает на python, когда я хочу преобразовать его в exe с помощью py2exe или pyinstaller, он показывает показанную ошибку, я новичок и не знаю определенных вещей, могу ли я поместить ваш код: pygame.font.SysFont('имя шрифта', font_size ) в любом месте или в конкретной строке? 24.03.2021
  • Я рекомендую вам прочитать эту статью, если вы хотите узнать больше о шрифты. Строка pygame.font.SysFont('calibri', 11), например, устанавливает объект шрифта (здесь используется шрифт калибри, высота 11 пикселей). Поместите его в начале кода, чтобы использовать этот шрифт, например, так: screen.blit( font.render('text', 0, color)), (0, 0)) для отображения текста на экране. 24.03.2021
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..