Почему не работает import python
Перейти к содержимому

Почему не работает import python

  • автор:

Как импортировать модули в Pyton 3.6.2? Не работает import, ошибка module not found error

Как импортировать модули в Python 3.6.2? Начал изучать python, в книге раздел про импорт модулей, вот пример: я создал текстовый файл с текстом print(‘Hello module world!’) и сохранил с названием module1.py. Файл я закинул в папку с питоном. Как сказано в книге, просто введя import module1 питон импортирует содержимое файла, где бы на компе он не находился, либо его можно выполнить командой python module1 . Короче, способ не работает на версии 3.6.2, вводил и module1 и module1.py , не находит файл, ни через вызов интерпретатора Python из командной строки, ни через IDLE. Ошибка module not found error , а при команде python module1 — syntax error . PATH на компе настроен. Поискал, пишут что эта фишка работала на python до версии 3.5, а с версии 3.6 способ изменили, вот только как на 3.6 импортировать я так и не нашёл ничего понятного.

Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import module1 Traceback (most recent call last): File "", line 1, in ModuleNotFoundError: No module named 'module1' >>> import module1.py Traceback (most recent call last): File "", line 1, in ModuleNotFoundError: No module named 'module1' >>> python module1 File "", line 1 python module1 ^ SyntaxError: invalid syntax >>> python module1.py File "", line 1 python module1.py ^ SyntaxError: invalid syntax 

Отслеживать

52.2k 11 11 золотых знаков 109 109 серебряных знаков 312 312 бронзовых знаков

задан 5 сен 2017 в 18:45

1 1 1 серебряный знак 2 2 бронзовых знака

Насчёт syntax error поподробней, пожалуйста, что ещё тогда вам интерпретатор сказал?

5 сен 2017 в 18:52

SyntaxError: Invalid syntax

5 сен 2017 в 18:54

наверняка там ещё номер строчки был?

5 сен 2017 в 18:54

>>> python module1.py File ««, line 1 python module1.py ^ SyntaxError: invalid syntax

5 сен 2017 в 18:56

Что у вас в первой строчке файла module1.py записано? Судя по вопросу там строчка print(‘Hello module world!’) , а судя по ошибке что-то не то.

Почему не работает import в python?

Отдельно создал функцию Button в файлике button. Пытаюсь импортировать и как «import button», и как «from button import Button», вылезает ошибка ModuleNotFoundError: No module named ‘button’
Не могу понять в чем проблема, что я делаю не так?

  • Вопрос задан 28 окт. 2023
  • 146 просмотров

3 комментария

Простой 3 комментария

Balavnik

У тебя файлы в одной директории?

a777mp198

Для подобного импорта файл button.py должен лежать в одной директории (папке), вместе с файлом в котором Вы хотите импортировать функцию таким образом.

HanamiRau @HanamiRau Автор вопроса
Решения вопроса 0
Ответы на вопрос 1

Файл с с функцией должен находиться в той же директории, что и файл, в котором импортируется функция.
Если корень директории один, но файл с функцией лежит в другой папке, то вызываешь следующим образом: from [folder].button import Button
Где [folder] — это папка, в которой находится вызываемый файл с функцией.

Ответ написан 28 окт. 2023
Everything_is_bad @Everything_is_bad

это частный случай, который ничего не объясняет, а надо просто начать с чтения документации для понимания что такое PYTHONPATH и всё связанное с ним

Почему не работает import в Python?

Есть основной файл, а есть модуль, который содержит одну функцию. Они лежат в одной папке. В основном файле есть вызов функции из модуля.
Работает, если from test_function import abc, но не работает, если import test_function (хочу, чтобы весь последующий код из модуля в дальнейшем импортировался автоматически в основной файл). Я что-то делаю неправильно?

  • Вопрос задан более трёх лет назад
  • 10268 просмотров

4 комментария

Простой 4 комментария

igorzakhar

igorzakhar @igorzakhar
Фраза «не работает» как то не очень информативна.
Андрей @AndrewRusinas Автор вопроса
igorzakhar, ошибка, что функция abc не определена.
при импорте модуля:

import test_function test_function.abc()

импорт всего содежимого:

from test_function import * abc()

Андрей @AndrewRusinas Автор вопроса
Решения вопроса 1

Я что-то делаю неправильно?

Ответ написан более трёх лет назад
Нравится 1 1 комментарий
Андрей @AndrewRusinas Автор вопроса
Ответы на вопрос 3

GavriKos

А как вызываете?
Если я правильно помню — во втором случае надо вызывать через модуль — test_function.abc()

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
from test_function import *
Ответ написан более трёх лет назад
Андрей @AndrewRusinas Автор вопроса

Насколько я знаю, это импортирует все функции? А если нужно импортировать весь код?
Если верить описаниям, это должно происходить при import *имя файла*.

Честно говоря, я не силен в питоне и на этот вопрос ответа дать не могу. Могу только загуглить 🙂
https://pythonworld.ru/osnovy/rabota-s-modulyami-s.
Тут, вроде как, подробно описано.

>>> Насколько я знаю, это импортирует все функции? А если нужно импортировать весь код?
Для модулей только функции и классы нужны. Или вы хотите вызвать и исполнение кода, что не в функциях?
Если так, то при импорте происходит исполнение кода модуля, т.е. что не в функциях сразу же исполняется. Обычно, это как раз, не требуется и соответственно этого пытаются избежать таким способом:

def main(): pass # код который исполняется при запуске, а не при импорте if __name__ == '__main__': main()

__name__ будет равен __main__ при прямом запуске этого модуля, и имени файла без расширения (.py) при импорте. Для кругозора прочитайте про пространство имен в Python-е. Спойлер: модули(файлы *.py) в Python такие же объекты как и экземпляры классов, и работаем с ними соответственно

Решение ошибки «ImportError: No module named» в Python

Ошибка «ImportError: No module named» в Python — это типичная проблема, с которой сталкиваются новички. Она возникает, когда Python не может найти модуль, который указан для импорта в коде.

Рассмотрим пример. Предположим, есть следующая структура директорий:

(local directory)/site-packages/toolkit/interface.py 

И код находится здесь:

(local directory)/site-packages/toolkit/examples/mountain.py 

Чтобы запустить пример, используется команда python mountain.py , и в коде есть строка:

from toolkit.interface import interface

Но при запуске кода возникает ошибка:

Traceback (most recent call last): File "mountain.py", line 28, in ? from toolkit.interface import interface ImportError: No module named toolkit.interface 

Это означает, что Python не может найти указанный модуль или пакет. Возможные причины могут быть следующими:

  1. Неправильный путь к модулю. Python ищет модули и пакеты в определенных местах. Если модуль или пакет находится в директории, которая не входит в sys.path , Python не сможет его найти. В этом случае, необходимо убедиться, что путь к модулю или пакету правильный.
  2. Отсутствует файл __init__.py . В каждом пакете Python должен быть файл __init__.py (может быть пустым), чтобы Python мог распознать пакет. Если этого файла нет, Python не сможет импортировать модули из этого пакета.
  3. Проблемы с правами доступа. Если у Python нет прав на чтение файла модуля или пакета, он не сможет его импортировать. В этом случае, необходимо проверить права доступа к файлам и директориям.
  4. Неправильное имя модуля или пакета. Имя модуля или пакета в команде import должно быть точно таким же, как и имя файла (без расширения .py ). Если имена не совпадают, Python не сможет найти и импортировать модуль или пакет.

Решение этой проблемы — это процесс исключения. Нужно проверить каждую из возможных причин, пока не будет найдена та, которая вызвала ошибку. Затем можно приступить к исправлению этой проблемы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *