Разделение кода Python в Raspberry Pi Pico

Я не могу импортировать класс из другого файла в micro python на raspberry pi pico.

Например. структура каталогов


  каталог / | __main.py
  | __imports /
    |_example.py

имя файла: main.py

      
from imports.example import ex

a = ex("name")
a.print_name()

имя файла: example.py

      
class ex:
    def __init_( self, name):
        self.name = name

    def print_name( self, ):
        print( self.name)

Ошибка гласит следующее

      Traceback (most recent call last):
  File "<stdin>", line 4, in <module>
ImportError: no module named 'imports.example'

Код работает, когда все классы присутствуют в одном файле. Я использую расширение pico-go vscode для debain. Я попытался добавить __ init __.py в каталог примеров, но безуспешно.

2 ответа

Кнопка означает Run current file. Поэтому загружается только main.py. Импорт завершится ошибкой, потому что example.py не загружен.

Выбирать Pico-Go > Upload Projectиз All commandsдля загрузки example.pyк пико. Затем нажмите Runи выполните main.py, импорт будет успешным.

Окружающая среда

  • vscode (1.65.2)
  • Пико-Гоу (v1.4.3)

Вам не хватает пустого __init__.py файл в каталоге, который "волшебным образом" (фактически по соглашению) превратит imports в пакет.

https://docs.python.org/3.8/tutorial/modules.html#packages

      dir/
   main.py
   imports/
        __init__.py     # <= turns 'imports' into a package
        example.py
      $ python main.py
name
Другие вопросы по тегам