Как мне подключить функций и объекты находящиеся внутри файла в разных папках?
Я запускаю файл находящийся в директории.
python/folder/test_1.py
И мне нужно получить функций из файлов test_2.py и test_3.py
Но способы которые я пробовал не работают.
#python/folder/test/test_2.py
from test.test_2 import fun_1, fun_2, fun_3
#python/test_3.py
sys.path += ['~/python']
from test_3 import fun_1, fun_2, fun_3
Что я делаю не так?
Ответы (1 шт):
Измените имя папки
test, например наtesting, и ваш первый импортfrom testing.test_2 import fun_1, fun_2, fun_3будет в Питоне 3.3+ работать.Имя
testдля пакета опасно, т.к. это имя регулярного пакета — папкиLib\test\в папке вашей инсталляции Питона, и потому что папкаLibавтоматически находится в спискеsys.path(который командаimportосматривает), ваш пакетtest.test_2будет Питон искать не в вашей папке test, a в своейLib\test\:>>> import test >>> test.__path__ ['C:\\Program Files\\Python37\\lib\\test']Для Питона до версии 3.2 включительно:
Добавите файл с именем
__init__.py(может быть пустой) в папкиpython,folder,testing,test2,test3, чтобы Питон узнал, что эти папки содержат пакеты.Для всех версий Питона:
Перед командой
from test_3 import fun_1, fun_2, fun_3добавите путь к папке, в которой находится папкаtest3, напримерsys.path += [r'C:\Users\user\python']