Как установить зависимости с квадратными скобками в python setup.py?

Я пытаюсь включить ray в свой пакет. Однако для использования ray необходимы некоторые зависимости, которые следует установить через pip install ray[all].

Если я просто добавлю ray[all] в install_requires из setup.py, например:

setup(
    ...
    install_requires=[
        ...
        "ray==1.0.0",
        "ray[all]==1.0.0",
    ]
)

Тогда запуск pip install -e . не может установить зависимости, указанные в ray[all]. Однако я бы хотел, чтобы мой пользователь мог установить все, просто запустив pip install -e ..

Может ли кто-нибудь предложить решение этой проблемы? Спасибо!


person Zhenghao Peng    schedule 22.11.2020    source источник
comment
возможно, это отвечает на ваш вопрос.   -  person Miguel Trejo    schedule 22.11.2020
comment
Просто спрашиваю информацию ..есть ли [all] вообще вариант? Кроме того, не будет ли requirements.txt лучше?   -  person Abhishek Rai    schedule 22.11.2020


Ответы (1)


Попробуйте pip install -e .[all].

В целом pip install -e .[extras] должен работать для всех пакетов python, упакованных с помощью setuptools.

person Alex    schedule 02.12.2020
comment
[] — это метасимволы оболочки. Вам, вероятно, придется поместить эту часть в кавычки, чтобы защитить их. Или это цель ведущего .? - person John Gordon; 03.12.2020
comment
кавычки могут иметь смысл: pip install -e '.[all]' - person richliaw; 03.12.2020
comment
Целью . является указание корневого каталога метода. Когда я тестировал это на своей оболочке bash, это работало без кавычек, хотя кавычки не должны мешать. - person Alex; 03.12.2020
comment
Ах ха! Если у вас есть файл(ы) с именами a, b или c, то оболочка расширит [abc] до этих имен файлов; в противном случае оболочка передает команде литерал [abc]. У вас не должно быть файлов с именами e, x, t, r, a или s. - person John Gordon; 04.12.2020