Как я могу импортировать функцию или класс из одной папки в другую? - PullRequest
0 голосов
/ 08 мая 2019

Я использую Python 3.6.У меня следующая структура папок:

main_directory
-- sub_directory_one
   -- config.py
-- sub_directory_two
   -- test.py

Я хочу импортировать функцию или класс из config.py в test.py.Я пытался

from sub_directory_one.config import class_name
from main_directory.sub_directory_one.config import class_name

Но ничего не работает.Мало кто предлагал добавить проект в системный путь. Но сейчас я работаю на Mac и что произойдет, если развернуть его на сервере Ubuntu.

Спасибо

1 Ответ

1 голос
/ 09 мая 2019

Если ваши подкаталоги (предполагается, что это) Python пакетов , добавьте пустой файл __init__.py в эти каталоги.Если вы затем запустите свое основное приложение из главного каталога, вы сможете использовать:

from sub_directory_one.config import class_name

В качестве альтернативы, если config.py и test.py - это модули Python , которые простоРазделенные в разных каталогах по любым практическим причинам, вы должны добавить подкаталоги в ваш путь поиска Python.Это можно сделать, установив переменную среды PYTHONPATH перед запуском основного приложения или расширив переменную Python sys.path в своем основном скрипте перед импортом этих модулей.В этом случае вы должны использовать:

from config import class_name

Для получения дополнительной информации о модулях и пакетах Python см. Официальную документацию .

...