Python script runs successfully in Thonny but returns NameError: name 'Snowflake' isn't defined if run from app list
-
I created this simple app to play with animations
import M5 import random class Snowflake: def __init__(self): self.MAX_WIDTH = 320 self.MAX_HEIGHT = 240 self.radius = random.randint(2, 4) self.velocity = random.randint(2, 5) self.x = random.randint(0, self.MAX_WIDTH) self.y = random.randint(0, self.MAX_HEIGHT) def fall(self): self.y += self.velocity if self.y > self.MAX_HEIGHT: self._reset() def _reset(self): self.radius = random.randint(2, 4) self.velocity = random.randint(2, 5) self.x = random.randint(0, self.MAX_WIDTH) self.y = 2 def setup(): global SNOWFLAKES_COUNT global snow global circles SNOWFLAKES_COUNT = 80 snow=[] circles=[] M5.begin() M5.Widgets.fillScreen(0x66b8f7) for _ in range(SNOWFLAKES_COUNT): snow.append(Snowflake()) circles.append(M5.Widgets.Circle(0, 0, 0, 0xffffff, 0xffffff)) def loop(): M5.update() head = M5.Widgets.Circle(160, 144, 25, 0xffffff, 0xffffff) body = M5.Widgets.Circle(160, 199, 39, 0xffffff, 0xffffff) nose = M5.Widgets.Triangle(161, 143, 122, 150, 161, 148, 0xEA6511, 0xEA6511) left_eye = M5.Widgets.Circle(152, 135, 2, 0x000000, 0x000000) right_eye = M5.Widgets.Circle(167, 135, 2, 0x000000, 0x000000) for index, s in enumerate(snow): s.fall() c = circles[index] c.setRadius(r=s.radius) c.setCursor(x=s.x, y=s.y) if __name__ == '__main__': try: setup() while True: loop() except (Exception, KeyboardInterrupt) as e: try: from utility import print_error_msg print_error_msg(e) except ImportError: print("please update to latest firmware")If i run this code from Thonny pressing the run button it works, but if i run it from the the app list, i get this error:
MPY: soft reboot _ __ _ _ _(_)/ _| | _____ __ | | | | | |_| |/ _ \ \ /\ / / | |_| | | _| | (_) \ V V / \__,_|_|_| |_|\___/ \_/\_/ 2.0.3 _click_event_handler _click_event_handler Traceback (most recent call last): File "apps/snowman.py", line 60, in <module> File "apps/snowman.py", line 40, in setup NameError: name 'Snowflake' isn't defined MicroPython v1.22.0-dirty on 2024-03-21; M5STACK Core2 with ESP32(SPIRAM) Type "help()" for more information.Anyone knows the cause of this error and how to resolve it?
-
@Genio Hi I hope you have resolved this issue! would you please share how you handle this error in the end?
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login