python pip: принудительная установка, игнорируя зависимости

126

Есть ли способ принудительно установить пакет pip python, игнорируя все его зависимости, которые не могут быть удовлетворены?

(Меня не волнует, насколько "неправильно" это делать, мне просто нужно это сделать, не говоря уже о любой логике и рассуждениях ...)

NeuronQ
источник

Ответы:

201

у пипа есть --no-dependenciesпереключатель. Вы должны использовать это.

Для получения дополнительной информации запустите pip install -h, где вы увидите эту строку:

--no-deps, --no-dependencies
                        Ignore package dependencies
Джефф Тратнер
источник
хорошо, спасибо, что потрудился ответить ... извините, не знаю, как я это пропустил, мне обязательно нужно было rtfm ...
NeuronQ 07
19
как передать это в файле requirements.txt?
Остин
2
Для запуска с файлом requirements.txt это будет:pip install --no-deps -r requirements.txt
Graham Place
Что-нибудь подобное, чтобы предотвратить установку рекомендуемых пакетов, например с apt-get install --no-install-recommends?
Коннор
1
@Connor нет эквивалента «рекомендованным пакетам» ни в одном из стандартных инструментов упаковки Python: distutils, setuptools, pip. У Setuptools (и pip) есть «дополнения», но они должны быть явно выбраны и установлены пользователем.
shadowtalker
6

Когда я пытался установить librosaпакет с помощью pip( pip install librosa), появилась эта ошибка:

ERROR: Cannot uninstall 'llvmlite'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

Я пытался удалить llvmlite, но pip uninstallне смог. Таким образом, я использовал возможности ignoreдля pipэтого кода:

pip install librosa --ignore-installed llvmlite

Действительно, вы можете использовать это правило для игнорирования пакета, который не хотите рассматривать:

pip install {package you want to install} --ignore-installed {installed package you don't want to consider}
Хамед Базияд
источник
1
это не совсем то, о чем просили операторы. согласно странице руководства -I, --ignore-installed Игнорировать установленные пакеты (вместо этого переустановка). этот флаг явно переустановит указанные пакеты, даже если они уже установлены
madmuffin