kodujwpythonie / koduj-w-pythonie

GNU General Public License v3.0
3 stars 24 forks source link

Problem z uruchomieniem kodu 04 #4

Closed samumajek closed 3 years ago

samumajek commented 3 years ago

Dzień dobry, robię właśnie kurs koduj w pythonie, gdzie kodujemy grę przygodową. Mam problem: po skopiowaniu gotowego kodu do rozdziału 04 ze strony, nie uruchamia się gra i pojawia się błąd. Nie wiem co zrobić. Wyświetla się taki komunikat jak na zdjęciu:

Zrzut ekranu

Pracuję na systemie MacOS i w edytorze Mu. Czy mogę prosić o pomoc?

kodujwpythonie commented 3 years ago

Dzień dobry, Dziękujemy bardzo za przesłanie zgłoszenia. Poprosimy o przesłanie jeszcze swojego zapytania na grupie "Koduj w Pythonie", gdzie Pan Adam Jurkiewicz udzieli pomocy w rozwiązaniu problemu: https://www.facebook.com/groups/kodujwpythonie/?ref=pages_profile_groups_tab&source_id=108747097468758 --  Pozdrawiam Monika Kmiecik  Biuro Obsługi Klienta tel: +48 585 055 914 Biuro czynne od pon. - piątku w godz. 08.30-16.00

LIMDESKTOKEN-PBbueL

samumajek commented 3 years ago

Dzień dobry, pisałam już wcześniej do Pana Adama na Facebooku i otrzymałam informację, żeby utworzyć tutaj issue.

abixadamj commented 3 years ago

@samumajek - SOA #1 - U mnie działa.... Właśnie sprawdziłem kod skopiowany ze strony i pobrany z repozytorium. Jesteś 100% pewna, że nic nie zmieniłaś w kodzie?

Zrzut ekranu z 2021-05-05 11-59-25

samumajek commented 3 years ago

Jestem pewna, skopiowałam kod ze strony i wkleiłam. I sprawdzałam 5 razy czy się zgadza, wszystko było tak samo, a wyskakiwał błąd.

abixadamj commented 3 years ago

Pokaż printscreen całego ekranu, z aplikacją mu-editor - tak jak ja... I wklej jako tekst ten kod błędu.

samumajek commented 3 years ago

Już udało mi się rozwiązać problem

abixadamj commented 3 years ago

A możesz dla innych napisać, co było tym problemem? Wtedy ktoś nie popełni tego samego błędu, a ja nie będę musiał się zastanawiać, co może być nie tak...

samumajek commented 3 years ago

Problem polegał na użyciu polskich znaków w kodzie. Po ich usunięciu program uruchamia się poprawnie.

abixadamj commented 3 years ago

Ale gdzie konkretnie? Bo to bardzo ciekawe... I jaki MacOS konkretnie?

samumajek commented 3 years ago

Wszystkie polskie znaki, które były w kodzie - komentarze i instrukcje

abixadamj commented 3 years ago

Hmmm... ciekawe - a czy w dowolnym programie w Python w Mu-Editor też taki problem występuje? Zapodaj log z Mu.... Aby go uzyskać, klikasz w prawym dolnym rogu okna w koło żębate... Zrzut ekranu z 2021-05-06 08-29-55

2021-05-06 08:27:43,451 - root:113(run) INFO: 

-----------------

Starting Mu 1.1.0.alpha.2
2021-05-06 08:27:43,451 - root:114(run) INFO: uname_result(system='Linux', node='free-desktop', release='5.4.0-72-generic', version='#80-Ubuntu SMP Mon Apr 12 17:35:00 UTC 2021', machine='x86_64', processor='x86_64')
2021-05-06 08:27:43,451 - root:115(run) INFO: Python path: ['/opt/mu-1.1.0-alpha.2', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/home/adasiek/.local/lib/python3.8/site-packages', '/home/adasiek/mu', '/usr/local/lib/python3.8/dist-packages', '/usr/lib/python3/dist-packages', '/home/adasiek/.local/share/mu/site-packages', '/usr/lib/python3/dist-packages/IPython/extensions']
2021-05-06 08:27:43,451 - root:116(run) INFO: Language code: pl_PL
2021-05-06 08:27:43,514 - mu.logic:587(__init__) INFO: Setting up editor.
2021-05-06 08:27:43,514 - mu.logic:609(__init__) INFO: Settings path: /home/adasiek/.local/share/mu/settings.json
2021-05-06 08:27:43,514 - mu.logic:610(__init__) INFO: Session path: /home/adasiek/.local/share/mu/session.json
2021-05-06 08:27:43,514 - mu.logic:611(__init__) INFO: Log directory: /home/adasiek/.cache/mu/log
2021-05-06 08:27:43,514 - mu.logic:612(__init__) INFO: Data directory: /home/adasiek/.local/share/mu
2021-05-06 08:27:43,530 - mu.logic:625(setup) INFO: Available modes: python, circuitpython, microbit, esp, web, debugger, pygamezero
2021-05-06 08:27:43,615 - mu.logic:1265(change_mode) INFO: Workspace directory: /home/adasiek/mu_code
2021-05-06 08:27:43,615 - mu.logic:684(restore_session) INFO: Restoring session from: /home/adasiek/.local/share/mu/session.json
2021-05-06 08:27:43,615 - mu.logic:685(restore_session) DEBUG: {'theme': 'day', 'mode': 'pygamezero', 'paths': ['/home/adasiek/python_projekty/koduj-w-pythonie/04.py', '/home/adasiek/python_projekty/koduj-w-pythonie/program_04.py'], 'envars': [], 'minify': False, 'microbit_runtime': '', 'zoom_level': 4, 'window': {'x': 653, 'y': 109, 'w': 1267, 'h': 910}}
2021-05-06 08:27:43,615 - mu.logic:776(_load) INFO: Loading script from: /home/adasiek/python_projekty/koduj-w-pythonie/04.py
2021-05-06 08:27:43,615 - mu.logic:311(read_and_decode) DEBUG: Trying to decode with utf-8
2021-05-06 08:27:43,615 - mu.logic:314(read_and_decode) INFO: Decoded with utf-8
2021-05-06 08:27:43,615 - mu.logic:327(read_and_decode) DEBUG: Detected newline '\n'
2021-05-06 08:27:43,616 - mu.logic:860(_load) DEBUG: WIDTH = 1280
HEIGHT = 640

# definicje klas
class Game:
    def __init__(self, background_active):

        # ustawiamy najważniejsze elementy, niektóre na stałe
        self.background_active = background_active
        self.background_position = (0, 0)

        # elementy związane z naszym bohaterem
        self.floor_level = 460
        self.hero = Actor("character-right-01.png")
        self.hero.pos = ( WIDTH / 2, self.floor_level )

    def update_game(self):
        """ ta metoda będzie wywoływana z funkcji update() programu głównego """
        pass

    def draw_scene(self):
        """ ta metoda będzie wywoływana z funkcji draw() programu głównego """
        # rysujemy tło
        screen.blit(self.background_active, self.background_position)
        # rysujemy głównego bohatera bazując na jego danych
        self.hero.draw()

class Key:
    def __init__(self, file_name, in_pocket, room_number, place_on_floor):
        """ self oznacza *siebie samego* - czyli konkretny klucz """

        # te właściwości obiektu *self* przepisywane są z parametrów
        self.file_name = file_name
        self.in_pocket = in_pocket
        self.room_number = room_number
        self.place_on_floor = place_on_floor

    # na razie nie robimy nic
    pass

# podstawowe zmienne
background_active = "corridor-01.jpg"

# tworzymy klucze, a jako *self* będą przypisane nazwy zmiennych key_
key_00 = Key("key-00.png", False, 11, 1025)
key_01 = Key("key-01.png", False, 17, 80)
key_02 = Key("key-02.png", False, 16, 850)
key_03 = Key("key-03.png", False, 4, 950)
key_04 = Key("key-04.png", False, 0, 370)

# tworzymy zmienną gry
game = Game(background_active)

def update():
    game.update_game()

def draw():
    game.draw_scene()

2021-05-06 08:27:43,659 - mu.logic:776(_load) INFO: Loading script from: /home/adasiek/python_projekty/koduj-w-pythonie/program_04.py
2021-05-06 08:27:43,660 - mu.logic:311(read_and_decode) DEBUG: Trying to decode with utf-8
2021-05-06 08:27:43,660 - mu.logic:314(read_and_decode) INFO: Decoded with utf-8
2021-05-06 08:27:43,660 - mu.logic:327(read_and_decode) DEBUG: Detected newline '\n'
2021-05-06 08:27:43,660 - mu.logic:860(_load) DEBUG: WIDTH = 1280
HEIGHT = 640

# definicje klas
class Game:
    def __init__(self, background_active):

        # ustawiamy najważniejsze elementy, niektóre na stałe
        self.background_active = background_active
        self.background_position = (0, 0)

        # elementy związane z naszym bohaterem
        self.floor_level = 460
        self.hero = Actor("character-right-01.png")
        self.hero.pos = ( WIDTH / 2, self.floor_level )

    def update_game(self):
        """ ta metoda będzie wywoływana z funkcji update() programu głównego """
        pass

    def draw_scene(self):
        """ ta metoda będzie wywoływana z funkcji draw() programu głównego """
        # rysujemy tło
        screen.blit(self.background_active, self.background_position)
        # rysujemy głównego bohatera bazując na jego danych
        self.hero.draw()

class Key:
    def __init__(self, file_name, in_pocket, room_number, place_on_floor):
        """ self oznacza *siebie samego* - czyli konkretny klucz """

        # te właściwości obiektu *self* przepisywane są z parametrów
        self.file_name = file_name
        self.in_pocket = in_pocket
        self.room_number = room_number
        self.place_on_floor = place_on_floor

    # na razie nie robimy nic
    pass

# podstawowe zmienne
background_active = "corridor-01.jpg"

# tworzymy klucze, a jako *self* będą przypisane nazwy zmiennych key_
key_00 = Key("key-00.png", False, 11, 1025)
key_01 = Key("key-01.png", False, 17, 80)
key_02 = Key("key-02.png", False, 16, 850)
key_03 = Key("key-03.png", False, 4, 950)
key_04 = Key("key-04.png", False, 0, 370)

# tworzymy zmienną gry
game = Game(background_active)

def update():
    game.update_game()

def draw():
    game.draw_scene()

2021-05-06 08:27:43,672 - mu.logic:706(restore_session) INFO: Loaded files.
2021-05-06 08:27:43,672 - mu.logic:709(restore_session) INFO: User defined environment variables: []
2021-05-06 08:27:43,672 - mu.logic:713(restore_session) INFO: Minify scripts on micro:bit? False
2021-05-06 08:27:43,700 - mu.logic:1265(change_mode) INFO: Workspace directory: /home/adasiek/mu_code
2021-05-06 08:27:49,776 - mu.logic:1161(show_admin) INFO: Showing admin with logs from /home/adasiek/.cache/mu/log/mu.log
2021-05-06 08:27:49,776 - mu.logic:163(installed_packages) INFO: Packages found: []
2021-05-06 08:28:14,984 - mu.logic:1192(show_admin) INFO: No admin settings changed.
2021-05-06 08:28:18,672 - mu.logic:1220(select_mode) INFO: Showing available modes: ['python', 'circuitpython', 'microbit', 'esp', 'web', 'debugger', 'pygamezero']
2021-05-06 08:28:22,480 - mu.logic:1226(select_mode) INFO: New mode selected: python
2021-05-06 08:28:22,498 - mu.logic:1265(change_mode) INFO: Workspace directory: /home/adasiek/mu_code
2021-05-06 08:28:24,850 - mu.logic:761(new) INFO: Added a new tab.
2021-05-06 08:28:42,863 - mu.logic:885(get_dialog_directory) INFO: Using path for file dialog: /home/adasiek/mu_code
2021-05-06 08:28:49,207 - mu.interface.main:288(get_save_path) DEBUG: Getting save path: /home/adasiek/mu_code/test.py
2021-05-06 08:28:49,208 - mu.logic:984(check_for_shadow_module) INFO: Checking path "/home/adasiek/mu_code/test.py" for shadow module.
2021-05-06 08:28:49,210 - mu.interface.main:763(show_message) DEBUG: Nie możesz używasz nazwy pliku "test.py"
2021-05-06 08:28:49,211 - mu.interface.main:764(show_message) DEBUG: Ta nazwa jest już używana przez inną część Pythona. Jeśli użyjesz tej nazwy, najprawdopodobniej coś się popsuje. Spróbuj ponownie z inną nazwą pliku.
2021-05-06 08:28:53,649 - mu.logic:885(get_dialog_directory) INFO: Using path for file dialog: /home/adasiek/mu_code
2021-05-06 08:28:59,204 - mu.interface.main:288(get_save_path) DEBUG: Getting save path: /home/adasiek/mu_code/test_pl.py
2021-05-06 08:28:59,205 - mu.logic:984(check_for_shadow_module) INFO: Checking path "/home/adasiek/mu_code/test_pl.py" for shadow module.
2021-05-06 08:28:59,205 - mu.logic:950(save_tab_to_file) INFO: Saving script to: /home/adasiek/mu_code/test_pl.py
2021-05-06 08:28:59,205 - mu.logic:951(save_tab_to_file) DEBUG: # Tutaj pisz swój kod, młody padawanie ;-)
print("Test ąłó ;-)")
2021-05-06 08:29:04,842 - mu.logic:1161(show_admin) INFO: Showing admin with logs from /home/adasiek/.cache/mu/log/mu.log
2021-05-06 08:29:04,843 - mu.logic:163(installed_packages) INFO: Packages found: []
2021-05-06 08:29:16,414 - mu.logic:1192(show_admin) INFO: No admin settings changed.
2021-05-06 08:29:18,665 - mu.logic:1137(quit) DEBUG: Session: {'theme': 'day', 'mode': 'python', 'paths': ['/home/adasiek/mu_code/test_pl.py'], 'envars': [], 'minify': False, 'microbit_runtime': '', 'zoom_level': 4, 'window': {'x': 254, 'y': 57, 'w': 1267, 'h': 910}}
2021-05-06 08:29:18,665 - mu.logic:1138(quit) DEBUG: Saving session to: /home/adasiek/.local/share/mu/session.json
2021-05-06 08:29:18,665 - mu.logic:1152(quit) INFO: Quitting.

2021-05-06 08:29:21,475 - root:113(run) INFO: 

-----------------

Starting Mu 1.1.0.alpha.2
2021-05-06 08:29:21,475 - root:114(run) INFO: uname_result(system='Linux', node='free-desktop', release='5.4.0-72-generic', version='#80-Ubuntu SMP Mon Apr 12 17:35:00 UTC 2021', machine='x86_64', processor='x86_64')
2021-05-06 08:29:21,475 - root:115(run) INFO: Python path: ['/opt/mu-1.1.0-alpha.2', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/home/adasiek/.local/lib/python3.8/site-packages', '/home/adasiek/mu', '/usr/local/lib/python3.8/dist-packages', '/usr/lib/python3/dist-packages', '/home/adasiek/.local/share/mu/site-packages', '/usr/lib/python3/dist-packages/IPython/extensions']
2021-05-06 08:29:21,475 - root:116(run) INFO: Language code: pl_PL
2021-05-06 08:29:21,538 - mu.logic:587(__init__) INFO: Setting up editor.
2021-05-06 08:29:21,538 - mu.logic:609(__init__) INFO: Settings path: /home/adasiek/.local/share/mu/settings.json
2021-05-06 08:29:21,538 - mu.logic:610(__init__) INFO: Session path: /home/adasiek/.local/share/mu/session.json
2021-05-06 08:29:21,538 - mu.logic:611(__init__) INFO: Log directory: /home/adasiek/.cache/mu/log
2021-05-06 08:29:21,538 - mu.logic:612(__init__) INFO: Data directory: /home/adasiek/.local/share/mu
2021-05-06 08:29:21,553 - mu.logic:625(setup) INFO: Available modes: python, circuitpython, microbit, esp, web, debugger, pygamezero
2021-05-06 08:29:21,628 - mu.logic:1265(change_mode) INFO: Workspace directory: /home/adasiek/mu_code
2021-05-06 08:29:21,629 - mu.logic:684(restore_session) INFO: Restoring session from: /home/adasiek/.local/share/mu/session.json
2021-05-06 08:29:21,629 - mu.logic:685(restore_session) DEBUG: {'theme': 'day', 'mode': 'python', 'paths': ['/home/adasiek/mu_code/test_pl.py'], 'envars': [], 'minify': False, 'microbit_runtime': '', 'zoom_level': 4, 'window': {'x': 254, 'y': 57, 'w': 1267, 'h': 910}}
2021-05-06 08:29:21,629 - mu.logic:776(_load) INFO: Loading script from: /home/adasiek/mu_code/test_pl.py
2021-05-06 08:29:21,629 - mu.logic:311(read_and_decode) DEBUG: Trying to decode with utf-8
2021-05-06 08:29:21,629 - mu.logic:314(read_and_decode) INFO: Decoded with utf-8
2021-05-06 08:29:21,629 - mu.logic:327(read_and_decode) DEBUG: Detected newline '\n'
2021-05-06 08:29:21,629 - mu.logic:860(_load) DEBUG: # Tutaj pisz swój kod, młody padawanie ;-)
print("Test ąłó ;-)")

2021-05-06 08:29:21,663 - mu.logic:706(restore_session) INFO: Loaded files.
2021-05-06 08:29:21,663 - mu.logic:709(restore_session) INFO: User defined environment variables: []
2021-05-06 08:29:21,663 - mu.logic:713(restore_session) INFO: Minify scripts on micro:bit? False
2021-05-06 08:29:21,691 - mu.logic:1265(change_mode) INFO: Workspace directory: /home/adasiek/mu_code
2021-05-06 08:29:25,868 - mu.logic:1161(show_admin) INFO: Showing admin with logs from /home/adasiek/.cache/mu/log/mu.log
2021-05-06 08:29:25,868 - mu.logic:163(installed_packages) INFO: Packages found: []
samumajek commented 3 years ago

Poniżej przesyłam log:

WIDTH = 1280 HEIGHT = 640 


definicje klas

class Game: def init(self, background_active): 


ustawiamy najważniejsze elementy, niektóre na stałe

    self.background_active = background_active
    self.background_position = (0, 0)

elementy związane z naszym bohaterem

    self.floor_level = 460
    self.hero = Actor("character-right-01.png")
    self.hero.pos = ( WIDTH / 2, self.floor_level )


 
 def update_game(self): """ ta metoda będzie wywoływana z funkcji update() programu głównego """ pass 
 def draw_scene(self): """ ta metoda będzie wywoływana z funkcji draw() programu głównego """

rysujemy tło

    screen.blit(self.background_active, self.background_position)
    # rysujemy głównego bohatera bazując na jego danych
    self.hero.draw()


 
 class Key: def init(self, file_name, in_pocket, room_number, place_on_floor): """ self oznacza siebie samego - czyli konkretny klucz """ 


te właściwości obiektu self przepisywane są z parametrów

    self.file_name = file_name
    self.in_pocket = in_pocket
    self.room_number = room_number
    self.place_on_floor = place_on_floor

na razie nie robimy nic

pass

podstawowe zmienne

background_active = "corridor-01.jpg" 


tworzymy klucze, a jako self będą przypisane nazwy zmiennych key_

key_00 = Key("key-00.png", False, 11, 1025) key_01 = Key("key-01.png", False, 17, 80) key_02 = Key("key-02.png", False, 16, 850) key_03 = Key("key-03.png", False, 4, 950) key_04 = Key("key-04.png", False, 0, 370) 


tworzymy zmienną gry

game = Game(background_active) 
 def update(): game.update_game() 
 def draw(): game.draw_scene() 2021-05-06 17:20:38,638 - mu.interface.panes:651(start_process) INFO: Running script: /Users/…/mu_code/testtest.py 2021-05-06 17:20:38,638 - mu.interface.panes:656(start_process) INFO: Command args: [] 2021-05-06 17:20:38,638 - mu.interface.panes:714(start_process) INFO: Working directory: /Users/…/mu_code 2021-05-06 17:20:38,638 - mu.interface.panes:719(start_process) INFO: Python path: ['/Applications/mu-editor.app/Contents/MacOS', '/Applications/mu-editor.app/Contents/Resources/python/lib/python36.zip', '/Applications/mu-editor.app/Contents/Resources/python/lib/python3.6', '/Applications/mu-editor.app/Contents/Resources/python/lib/python3.6/lib-dynload', '/Applications/mu-editor.app/Contents/Resources/python/lib/python3.6/site-packages', '/Applications/mu-editor.app/Contents/Resources/app', '/Applications/mu-editor.app/Contents/Resources/app_packages', '/Applications/mu-editor.app/Contents/Resources/app_packages/IPython/extensions'] 2021-05-06 17:20:41,307 - mu.logic:1077(show_admin) INFO: Showing logs from /Users/…/Library/Logs/mu/mu.log

samumajek commented 3 years ago

Udało mi się rozwiązać problem całkowicie 👍. Link ze szkolenia wskazuje na wersję edytora 1.0.3, w której występuje ten problem. Po zainstalowaniu najnowszej wersji mu-editora (1.1.0.beta.4) mogę korzystać z polskich znaków.

Pozdrawiam Maja

abixadamj commented 3 years ago

Super - zatem @kodujwpythonie - zmienimy link na wersję beta 1.1 - choć ona jest ciągle w aktywnym tworzeniu.