Ошибка Python в операторе импорта : синтаксическая ошибка ПРОТИВ ModuleNotFoundError

#python #import

Вопрос:

Если я запущу 2 инструкции по импорту с некоторыми поддельными именами

я получаю 2 разных ответа от интерпретатора python

Я получаю эти ошибки:

  • SyntaxError: invalid syntax
  • ModuleNotFoundError: No module named ...

Единственное отличие состоит в том, что второй импорт содержит некоторую цифру после точки.

В чем заключается другая ошибка с 2 несистематизированными файлами и путем ?

Почему python не возвращает только один Error message ModuleNotFoundError ?

Почему python возвращает a SyntaxError из-за наличия цифры после точки ?

другая ошибка импорта

Комментарии:

1. 1 не является допустимым идентификатором.

2. Спасибо, так как же мы можем управлять импортом с каталогом, который начинается с цифры и который нельзя переименовать ? Я видел, что importlib способен это сделать, но я не знаю, является ли это хорошей практикой.

3. Хорошей практикой было бы назвать ваш пакет как-то по-другому.

4. Конечно, я полагаю, что да, но я не отвечаю за это. Вот почему я использую importlib, который кажется решением.

Ответ №1:

Причина этого в том, что 1 это неверный идентификатор. Следовательно, в синтаксисе есть ошибка, из-за SyntaxError которой вы видите. Первый импорт верен с точки зрения синтаксиса, однако ваша программа не смогла найти импорт.

Ответ №2:

В Python вы не можете называть переменные или функции, начинающиеся с числа (в данном случае 1).

Python будет предполагать, что randomeazeay0.a.b.c все допустимы, но при попытке импортировать randomeazeay0.a.b.c. 1 это вызовет синтаксическую ошибку, поскольку имя этой предполагаемой функции или переменной не может начинаться с числа.