Как создать пакет Python с зависимостью от другого пользовательского пакета python?

#python #pip #package #pypi

#python #pip #пакет #pypi

Вопрос:

У меня есть проект Python, и я хочу опубликовать его Pypi . Давайте назовем это Package_main . Я использовал некоторые локальные / частные / пользовательские пакеты Python ( Package_1 и Package_2 ) Package_main .

В Package_main :

 import Numpy, matplotlib     # import public packages
import Package_1, Package_2  # import private/local/custom packages
 

Примечание:
Я установил Numpy и matplotlib по команде pip install Numpy, matplotlib .
Я установил Package_1 и Package_2 по команде python setup.py develop в соответствующем каталоге. Потому что два пакета еще не были созданы и опубликованы Pypi .

Я попытался создать Package_main и опубликовать его Pypi . Но я обнаружил, что после загрузки Package_main в новой среде и ее использования отображается ошибка:

 ModuleNotFoundError: No module named Package_1
 

Это означает, что мои локальные Package_1 и Package_2 не включены в Package_main .

Я готов Package_main опубликовать вместе с Package_1 and Package_2 . Можете ли вы сказать мне, как это сделать? (Я знаю, что один из методов — публиковать Package_1 и Package_2 отдельно Pypi , а затем использовать их так же, как я использую Numpy , но я думаю, что этот метод кажется не элегантным, у вас есть какие-либо другие решения?)

Ответ №1:

В идеале для пакета на python требуется __init__.py файл, который можно квалифицировать как пакет. Учитывая, что вам нужно извлекать данные из одного и того же корня, __init__.py в вашем корне должен быть элемент, который содержит все необходимые импортные файлы.