Программа (называемая main,py):
Код: Выделить всё
import asyncio
import os
import pygame
pygame.init()
main_dir = os.path.split(os.path.abspath(__file__))[0]
testTxt = os.path.join(main_dir,"test.txt")
print("Dir = ",main_dir," : test file = ",testTxt)
clock = pygame.time.Clock() # Set the clock timer
screen_posn = (1000,600)
screen = pygame.display.set_mode((screen_posn))
screen.fill("black")
running = True # Main loop control
async def main():
global screen,running
testText = "Data in test.txt - Press E to write back the inverse"
font = pygame.font.Font(None, 32)
txt = font.render(testText, False, "white")
txt_rect = txt.get_rect(topleft=(300,100))
screen.blit(txt,txt_rect)
writeBackText = "Data below should be written back to test.txt"
wbt = font.render(writeBackText,False,"black")
wbt_rect = wbt.get_rect(topleft=(300,250))
writeBack = False
with open(testTxt,"r") as tests:
test = tests.readline()
tst = font.render(test,False,"white")
tst_rect = tst.get_rect(topleft=(300,150))
inverse = test[::-1]
inv = font.render(inverse,False,"black")
inv_rect = inv.get_rect(topleft=(300,300))
while running:
screen.fill("black")
screen.blit(txt,txt_rect)
screen.blit(tst,tst_rect)
screen.blit(wbt,wbt_rect)
screen.blit(inv,inv_rect)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_END]:
running = False
elif keys[pygame.K_e]:
wbt = font.render(writeBackText,False,"white")
inv = font.render(inverse,False,"white")
writeBack = True
pygame.display.flip() # Display the screen
clock.tick(60)
await asyncio.sleep(0)
with open(testTxt,"w") as tests:
tests.write(inverse)
print(inverse," should have been written to ",testTxt)
asyncio.run(main())
Чтобы скомпилировать программу с помощью Pygbag (который должен быть установлен в формате pip), сначала перейдите в родительский каталог /main.py (cd ..), затем запустите pygbag (родительский каталог). После компиляции программы вы можете просмотреть ее в браузере по адресу http://localhost:8000#debug, где можно просмотреть любые сообщения печати/отладки.
I Я использую Python v3.12, pygame v2.6.0 и pygbag v0.9.1
Мой вопрос: почему я не могу писать обратно в скомпилированной версии программы, тогда как я могу при запуске это в среде Python?
Любая помощь/предложения будут с благодарностью приняты!
Подробнее здесь: https://stackoverflow.com/questions/788 ... ith-pygbag