Как просто импортировать файл - PullRequest
1 голос
/ 28 июня 2019

Кажется, это простая проблема, поэтому я подумал, что на нее уже ответят, но ни одно из объяснений, которые я нашел в Интернете, не содержало решения, которое было бы актуально для меня.

Итак, я просто хочу иметь возможностьимпортировать функции из файла, который находится в той же папке, что и файл, в котором я хочу их использовать.Везде было написано, что мне просто нужно было написать import my_file, но я просто получаю ImportError: No module named my_file

Я пытался добавить пустой файл __init__.py в папку, но это не сработало.Я не пробовал другие слишком сложные решения, потому что они должны быть простыми, и я чувствую, что мне просто не хватает чего-то простого, но необходимого.

Итак, я сделал тест настолько простым, насколько это возможно, просто папкойFolder, содержащий два файла, file1.py и file2.py.Вот содержимое file1.py:

import file2
f()

А вот содержимое file2.py:

def f():
    print "it works !"

Когда я выполняю file1.py, я получаю следующую ошибку встрока 1: ImportError: No module named file2

(я пробовал со всеми возможными комбинациями наличие и отсутствие кавычек, скобок и расширения .py, с большинством из них я получаю SyntaxError: invalid syntax)

Ответы [ 4 ]

0 голосов
/ 28 июня 2019

Я пробовал с другой IDE (Spyder вместо Pyzo).Он спросил, где выполнить код, я нажал «из местоположения файла», и он работал.

Я думаю, проблема была в том, откуда был выполнен код ...

0 голосов
/ 28 июня 2019

Вы делаете неправильный путь. Ниже приведен код, по которому вы получите желаемый результат: -

file1

import file2
file2.f()   # You have to use like this.

file2

def f():
    print "it works !"

Надеюсь, это поможет вам.

0 голосов
/ 28 июня 2019

Пожалуйста, используйте это, отлично работает для меня.

file1

from  file2 import f

#You will get object code. it means working fine.

print (f)
0 голосов
/ 28 июня 2019

вы должны написать как показано ниже в file1.py:

from file2 import f
f()
...