@Fortage

Не Запускает проект Python через консоль с ошибкой ModuleNotFoundError: No module named?

Не Запускает проект Python через консоль с ошибкой
from Chip88.Chip8 import *
ModuleNotFoundError: No module named 'Chip88'

Если запускаю через Pycharm запускает все нормально.
Дерево проекта такое:
-Chip8
-chip8/Chip88
-chip8/Chip88/main.py
-chip8/Chip88/Interface.py
-chip8/Chip88/Chip8.py
-chip8/Chip88/__init__.py
-chip8/__init__.py

При запуске main.py ругается на файл Chip8 при строке from Chip88.Chip8 import *
Как исправить?
  • Вопрос задан
  • 25227 просмотров
Решения вопроса 1
DDDsa
@DDDsa
Файл, который вы запускаете должен находиться в корне проекта, иначе нет смысла в той структуре пакетов, которую вы создали. То есть, дерево должно быть такое:
-chip8/
-chip8/chip88/
-chip8/chip88/interface.py
-chip8/chip88/chip8.py
-chip8/chip88/__init__.py
-chip8/main.py


Теперь у вас папка с проектом chip8, в ней основной файл main.py и один пакет chip88. Тогда в файле main.py импорт из chip8.py должен выглядеть следующим образом:

from chip88.chip import *

Кстати, import * — это антипаттерн, так лучше не делать. Импортируйте только то, что вы намерены использовать в этом модуле.

Также обратите внимание, что я убрал заглавные буквы из всех названий файлов и папок. С заглавной буквы в питоне принято начинать только имена классов

***
Что почитать.
https://chrisyeh96.github.io/2017/08/08/definitive... — про импорты. Импорты в питоне только выглядят просто, на самом деле там есть важные нюансы, в которых лучше разбираться.

https://www.python.org/dev/peps/pep-0366/ — пеп именно по вашему случаю. Полезно, чтобы понять, почему ваш вариант не работает.

https://www.python.org/dev/peps/pep-0008/ — Ну и пеп8. Любой уважающий себя питонист должен знать этот документ на зубок. Тут всё про правило именования в питоне и другие принятые соглашения оформления кода и не только.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ulkoart
@ulkoart
from Chip88.сhip8 import *
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы