Я создаю приложение, которое зависит от some_package
(что довольно много), установленного через pip
или conda
.Я хотел бы повторно использовать части some_package
непосредственно в приложении;С этой целью я установил some_package
, установил его локально и изменил его функциональность по мере необходимости.Приложение теперь зависит от двух (расходящихся) версий одного и того же пакета с одинаковым именем для различных функций.
Как обратиться к pip
/ conda
managed ~/anaconda3/envs/my_env/lib/python3.7/site-packages/some_package/
для внутренней зависимости, иизмененный ~/my_project/dependencies/some_package/
для использования в моем приложении?
Есть несколько вопросов по переполнению стека, но они либо довольно старые, либо не тот же вопрос:
Что я пробовал:
conda develop <local package path>
: в этом случае пакет сайта не виден и нарушает внутренние зависимости - , изменяя имя папки локального пакета и импортируя: существуют внутренние ссылки на имя пакета, которые будут означать переименование везде, и создатьбеспорядок в управлении, если я когда-нибудь захочу вытащить новый код на развилку
- комментарий, предложенный
import some_package as package_dev
: это, очевидно, не сработает, поскольку у меня нет возможности ссылаться на оба пакета в первую очередь
В связанных вопросах (и других) есть целый ряд хаков, которые могут сработать, но незаметно сломать систему импорта (перезагрузить, обновить пакеты и т. Д.).Есть ли "питонический" / рекомендуемый способ сделать это?