Разделение кода 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