Доступ к другим файлам в разных местах внутри данного файла? - PullRequest
0 голосов
/ 20 декабря 2018

У меня следующая структура папок (она была мне дана и, как ожидается, останется, поэтому я не могу ничего реорганизовать).

Folder1
    Folder2.py
        File1
        Folder3
            File2.py
            File3.py

Я работаю в File2 и хочу импортировать функции / классы из File1 и File3 в File2.Я пытался сделать from Folder1.Folder2.File1 import Class1 и from Folder1.Folder2.Folder3.File3 import Func1.Если я нахожусь в терминале и изменил свой каталог на Folder3, чтобы я мог просто запустить python File2.py из терминала, как мне правильно импортировать из File1.py и File3.py?Должен ли я запустить файл по-другому в терминале?Прямо сейчас я получаю ошибку No module named Folder1.По сути, я хочу получить доступ к 1) файлу внутри папки на один уровень выше (File1) и 2) к другому файлу внутри того же уровня (File3).Как мне это сделать?Поскольку я не очень много работаю с терминалом, я хотел бы получить как можно более конкретные инструкции, и, пожалуйста, используйте предоставленную структуру / наименование, если можете.Спасибо!

1 Ответ

0 голосов
/ 20 декабря 2018

Если вы работаете в Linux, то вы можете сделать что-то подобное в файле env.py и импортировать файл в начальной точке вызова вашей программы, а затем вы можете обычно импортировать File1..etc без каких-либо проблем.

import os
import sys
root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(os.path.join(root_path, 'Folder1'))
sys.path.append(os.path.join(root_path, 'Folder1', 'Folder2'))
sys.path.append(os.path.join(root_path, 'Folder1', 'Folder2', 'Folder3'))
...