Python: импортировать модули, а затем поделиться несколькими файлами

У меня есть файлы, как показано ниже,

file1.py
file2.py
file3.py

Скажем, что все три используют

lib7.py
lib8.py
lib9.py

В настоящее время каждый из трех файлов имеет строки

import lib7
import lib8
import lib9

Как настроить мой каталог/код таким образом, чтобы библиотеки импортировались только один раз, а затем делились между тремя файлами?

Ответ 1

Вам придется импортировать что-то, по крайней мере, один раз для каждого файла. Но вы можете настроить его так, чтобы это была одна строка импорта:

Вероятно, самый чистый способ - создать папку lib, переместить туда все lib?.py и добавить в нее пустой файл с именем __init__.py.

Таким образом, вы создаете пакет из ваших файлов lib?.py. Затем его можно использовать так:

import lib
lib.lib7

В зависимости от того, где вы хотите оказаться, вы также можете захотеть иметь некоторый код в __init__.py:

from lib7 import *
from lib8 import *
from lib9 import *

Таким образом, вы получаете все символы из отдельной lib?.py в одной import lib:

import lib
lib.something_from_lib7

Ответ 2

Импортируйте каждый из них в отдельный модуль, а затем импортируйте это:

lib.py:

import lib7
import lib8
import lib9

В каждом из файлов (file1.py, file2.py, file3.py) просто используйте import lib. Конечно, вы должны ссылаться на них с помощью lib.lib7 - чтобы этого избежать, вы можете использовать from lib import *.