Установка пакета.whl Python в определенный каталог, отличный от стандартного
Я пытаюсь установить 64-разрядную версию NTLK, которая входит в файл.whl, в другом каталоге, чем стандартная папка python34/Lib. Я использую 64-битную версию Windows 10 и 64-разрядную версию Python 3.4.
Сначала я попытался использовать инструкции в этом вопросе (который работал для других модулей).
Команда, введенная в CMD, была:
py -m pip install --install-option="--prefix=$PATH_NAME" nltk-3.0.4-py2.py3-none-any.whl
Он быстро дал мне следующую ошибку:
UserWarning: Отключение всех использования колес из-за использования --build-options / --global-options / --install-options.
Похоже, что я не могу установить WHL файлы с помощью опции -install. Есть ли альтернативный способ установить пакет.whl в каталог, не являющийся стандартом?
Изменение: я отметил это как решение, потому что предлагаемое решение позволяет мне делать то, что мне нужно, в моем собственном случае использования. Тем не менее, он не полностью отвечает на вопрос из-за присущих ограничений при использовании --root
для выбора альтернативного каталога. Технически нет правильного решения этой проблемы, см. Комментарии к ответам для деталей.
Редактировать - 3 марта 2017 года. Похоже, эта проблема была решена в версии 8.0 PIP с добавлением параметра --prefix. Я изменил принятый ответ соответственно.
Ответы
Ответ 1
Вы можете использовать --prefix
для pip install
, доступную с версии 8:
--prefix
Installation prefix where lib, bin and other top-level folders are placed
Обратите внимание, что pip uninstall
--prefix
не имеет опции --prefix
, поэтому нет очевидного способа удалить пакеты, установленные таким образом. В качестве обходного пути установите PYTHONUSERBASE
в каталог префикса, например:
PYTHONUSERBASE=prefix-dir python3 -m pip uninstall package-name
Ответ 2
Почему так происходит
При запуске pip install
из исходного кода он вызывает процесс сборки, который запускает скрипт setup.py и передает ему --install-option
вы передаете.
Однако установка колес не вызывает этот процесс сборки, и пока не принято решение о поддержке этих вариантов использования (см. Текущее обсуждение).
Возможное решение
Тем не менее, pip install
это в настоящее время поддерживает установку пользовательских мест с опциями --user
и --root
, что может достичь того, что вы ищете.
Предостережения
Как уже упоминалось в комментариях, существует проблема с обнаружением того, установлен ли пакет при использовании --root
, и обходной путь может использовать --upgrade
или --ignore-installed
.
Кроме того, использование --root
установит модуль в user_defined_path/python34/Lib/site-packages/
. Это делает этот параметр полезным для установки библиотеки на другом диске или установке python без установки по умолчанию, но не позволяет устанавливать ее в определенную папку в определенном каталоге.
Ответ 3
Другим способом решения проблемы может быть использование 7-zip и распаковка файла whl, который внутри распакованного каталога предоставит вам правильную папку модуля python, которую вы можете скопировать и вставить туда, где хотите.