我创建了一个pygame应用,该应用具有一个主python文件和一个资产文件夹。我已经使用pyinstaller将应用程序转换为可执行文件,但是每次收到错误-解决它们时,都会出现不同的错误。我怀疑我最近遇到的错误与pygame文件中的文本有关。
这是我使用的pygame字体行:
font = pygame.font.SysFont("Arial", 32)
我尝试使用.ttf文件并将其复制到与main.py文件相同的文件夹中,但这也不起作用。我还要确保将资产文件夹复制到与main.app文件相同的文件夹中,但这也没有帮助。
我不确定此错误消息告诉我什么,并且相同的消息似乎没有其他问题(此错误消息中引用的代码中没有行供我检查)。>
Fatal Python error: (pygame parachute) Segmentation Fault
Traceback (most recent call last):
File "pygame/pkgdata.py", line 50, in getResource
File "site-packages/pkg_resources/__init__.py", line 1134, in resource_exists
File "site-packages/pkg_resources/__init__.py", line 1404, in has_resource
File "site-packages/pkg_resources/__init__.py", line 1473, in _has
NotImplementedError: Can't perform this operation for unregistered loader type
任何帮助都会很棒,谢谢!
答案 0 :(得分:0)
如果使用ttf文件,则需要直接导入它们而不是使用SysFont
。例如:
size = 12
myfont = pygame.font.Font("Arial.ttf",size)
Arial.ttf还需要放置在可执行文件所在的文件夹中,或者,如果您具有更深的文件夹结构,请使用相对路径(并且文件夹也必须位于可执行文件旁边):
size = 12
myfont = pygame.font.Font("./myfolder/Arial.ttf",size)
出于测试目的,使用以下命令来查看从哪个文件夹开始,设置相对路径以及知道要在哪里查找ttf文件也可能会有所帮助:
import os
os.getcwd()