#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
это вызовет синтаксическую ошибку, поскольку имя этой предполагаемой функции или переменной не может начинаться с числа.