Как использовать setup.py только для установки зависимостей?

Я не заинтересован в установке самого моего пакета, но я заинтересован в установке всех зависимостей, используемых моим пакетом. Есть ли способ сделать это с помощью setup.py? Кажется, setup.py устанавливает мой пакет и все зависимости.


person Cory    schedule 12.06.2015    source источник
comment
Итак, у вас есть пакет abc, который зависит от xyz, вы хотите установить xyz, но не abc, я прав?   -  person Nilesh    schedule 12.06.2015
comment
pythonhosted.org/setuptools/   -  person sobolevn    schedule 12.06.2015
comment
Если в загруженном вами пакете есть файл требований, это pip install -r requirements.txt просто.   -  person    schedule 12.06.2015


Ответы (2)


Используйте флаг -e при установке pip

pip install -e .
person Nicolas Appriou    schedule 16.07.2017
comment
Меня это смущает - -e предназначен для редактируемого режима, который будет делать такие вещи, как символическая ссылка на рабочие каталоги зависимостей. В этом случае OP хочет установить все по-настоящему, а не один разрабатываемый пакет. Хорошо ли это подходит для варианта использования? - person Ken Williams; 04.09.2020
comment
Редактируемый режим @KenWilliams установит все по-настоящему, кроме того самого пакета, над которым вы работаете (это будет символическая ссылка, как вы упомянули). Однако вы можете не захотеть, чтобы эта ссылка оставалась - это то, что ваш трюк с последующими pip uninstall обрабатывает. - person karlicoss; 13.09.2020

Единственный способ, которым я нашел, чтобы надежно сделать это простым способом, заключается в следующем:

pip install . && pip uninstall `python setup.py --name`
person Ken Williams    schedule 04.09.2020
comment
Спасибо, отличный ответ. Одно небольшое предложение: pip uninstall --yes, поэтому оно не запрашивает вас (например, в Dockerfile) - person karlicoss; 13.09.2020
comment
Это отличный ответ! Один небольшой комментарий заключается в том, что он не работает для python3, однако его легко адаптировать. - person Qi Luo; 08.01.2021
comment
@QiLuo Я использую это с Python 3, с какой проблемой вы столкнулись? - person Ken Williams; 08.01.2021
comment
В среде с python2 и python3 я мог бы использовать pip3 install . && pip3 uninstall `python3 setup.py --name` - person Qi Luo; 09.01.2021
comment
@QiLuo Да, это только потому, что pip и python, по-видимому, называются pip3 и python3 в вашей среде. У меня они называются просто pip и python. - person Ken Williams; 09.01.2021