Как импортировать файл в другой файл в том же каталоге в python?

#python #package

#python #пакет

Вопрос:

У меня есть проект в виде следующей структуры:

 project
 |-setup.py
 |-... some files (README, LICENSE, etc)
 |-package_name
   |-__init__.py
   |-utility.py
   |-m.py
  

Прежде чем принять решение о настройке pypi для него, я использовал:

 from utility import *
  

для импорта utility в m . Однако затем, когда я устанавливаю пакет, он не может импортировать utility , и мне пришлось изменить его на:

    from package_name.utility import *
  

Опять же, когда я хочу разработать проект, мне пришлось вернуться к первому:

Я написал:

 try:
    from package_name.utility import *
except:
    from utility import *
  

Но я хотел бы знать, есть ли лучшее решение?

Ответ №1:

Вы можете использовать относительный импорт: from .utility import *

Чтобы иметь возможность использовать абсолютный импорт (например, после установки пакета from package_name.utility import * ) во время разработки, вы можете установить пакет в редактируемом режиме:

  • pip install --editable .
  • или python setup.py develop

Эти команды установят пакет в вашей среде таким образом, что все изменения кода вступят в силу немедленно при повторном запуске приложения, без необходимости переустановки пакета.