Рубрики
Без рубрики

Python: Управление модулем

Первоначально опубликовано в моем блоге. Этот пост является продолжением моего предыдущего … Помечено Python, модульмагемент, Pipenv, Pipfile.

Первоначально опубликовано в моем Блог Отказ

Этот пост является продолжением моего предыдущего поста: управление пакетом Python с Pipenv. У меня есть управление в пакете/зависимости на месте, теперь я хотел бы настроить структуру папки и заставить выполнение скриптов.

Моя заявление о проблеме состоит в том, что у меня нет основного сценария, который может вызвать любые модули для запуска. Время ко времени я выполняю любые сценарии из любой папки в отдельности, и у меня не должно быть никаких жестких зависимостей с любым файлом. Позвольте мне показать вам пример, который может легко объяснить мою проблему.

Рассмотрим следующую структуру папки, у меня сейчас есть:

__init__.py Это специальный файл, который помогает Python относиться к папкам/файлам в качестве модуля. Например, __init__.py Файл в общий/ Справочник делает его в виде модуля, поэтому пользователь может импортировать это в виде модуля в любом месте. И содержание __init__.py Файл просто пусто.

Содержание моего Connange.py очень просто:

ENDPOINT = "http://vimalselvam.com"

и Start.py в SRC/DataStore/ каталог:

import common.constant as constant

def run():
    print(constant.ENDPOINT)

if __name__ == " __main__":
    run()

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

~ pipenv run python src/datastore/start.py
Traceback (most recent call last):
  File "src/datastore/start.py", line 1, in 
    import common.constant as constant
ModuleNotFoundError: No module named 'common'

Что случилось! Проблема в том, что Python не разрешает зависимости модулей, если вы выполняете файл, который не относительно текущего каталога. Так что вы должны выполнить Start.py файл в виде модуля. Давайте сделаем это:

~ pipenv run python -m src.datastore.start
http://vimalselvam.com

Попался! Я провел некоторое время, чтобы понять это и, следовательно, это как пост. Если вы нашли это полезно, пожалуйста, хотите и поделитесь.

Оригинал: “https://dev.to/email2vimalraj/python-module-management-53f”