Создание пакета Python с зависимостью

Я создал пакет python с зависимостью, которую не удается установить с помощью pip из-за отсутствия некоторых колес и кода, отличного от Python (требуется компилятор Microsoft Visuals). Другие зависимости обычно устанавливаются с помощью pip.

проблемная зависимость (geopandas->pyproj) используется только в части моего пакета, поэтому мне было интересно, могу ли я разрешить пользователю устанавливать мой пакет с помощью pip со всеми функциями, кроме функций, требующих зависимости. Если пользователь хочет использовать функции в пакете, для которого требуется зависимость, его можно просто установить в дополнение к моему пакету, что обеспечивает большую гибкость (используйте pip, conda, compile и т. д.):

pip install mypackage
conda install dependency

а потом

import mypackage
import dependency

bar = mypackage.function_that_requires_dependency(foo)

Если пользователь не может установить зависимость, он все равно может использовать все части моего пакета, которые на нее не полагаются.

pip install mypackage

а потом

import mypackage

bar = mypackage.function_that_does_not_require_dependency(foo)

Есть ли способ сделать это? В настоящее время все мои импорты находятся в начале моего файла init.py.

пакет github
пакет PyPi


person Rutger Hofste    schedule 09.01.2018    source источник
comment
Возможный дубликат Необязательные зависимости в distutils/pip   -  person Jim Stewart    schedule 09.01.2018
comment
В частности, см. stackoverflow.com/a/13681679/719547 в этом вопросе.   -  person Jim Stewart    schedule 09.01.2018
comment
Обновление: я решил установить pip в Linux, сначала установив gcc. Однако для тестирования пакетов я использую Travis CI. Ищу способ установить компилятор в Linux автоматически.   -  person Rutger Hofste    schedule 09.01.2018