Установить Python-пакет в другую директорию с помощью pip?
Я понимаю, что очевидный ответ заключается в использовании virtualenv и virtualenvwrapper, но по различным причинам я не могу/не хочу этого делать.
Как я могу модифицировать команду
pip install package_name
чтобы pip
установил пакет не в стандартный каталог site-packages
?
5 ответ(ов)
Вы можете использовать следующую команду для установки пакета с указанным префиксом:
pip install --install-option="--prefix=$PREFIX_PATH" package_name
Также, возможно, вы захотите использовать опцию --ignore-installed
, чтобы принудительно переустановить все зависимости с использованием этого нового префикса. Вы можете использовать --install-option
несколько раз, чтобы добавить любые параметры, которые вы можете использовать с командой python setup.py install
(вероятно, вам больше всего подойдёт --prefix
, но есть и множество других опций, которые вы можете использовать).
Чтобы установить пакет в определённую директорию с помощью pip, вы можете использовать следующую команду:
pip install "package_name" -t "target_dir"
Здесь флаг -t
указывает на целевую директорию (target_dir
), куда будет установлен пакет package_name
. Если у вас еще остались вопросы или нужно больше информации, не стесняйтесь спрашивать!
Похоже, что никто не упомянул опцию -t, но это самый простой способ:
pip install -t <путь_к_директории> <пакет>
Эта команда позволяет установить указанный пакет в заданную директорию, что может быть полезно, если вы хотите использовать зависимости в конкретном месте, а не в глобальной или виртуальной среде.
Чтобы установить библиотеку в определенное место, откройте терминал и перейдите в нужный каталог, после чего выполните следующую команду:
pip install mylibraryName -t .
Эта команда устанавливает библиотеку в текущий каталог (указанный точкой после -t
). Логику этой команды я взял с этой страницы: https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/download.
Тестировал эти варианты с python3.5 и pip 9.0.3:
pip install --target /myfolder [пакеты]
Устанавливает ВСЕ пакеты, включая зависимости, в /myfolder. Не учитывает наличие зависимых пакетов, уже установленных в другом месте в Python. Вы найдете пакеты по пути /myfolder/[имя_пакета]. Если у вас установлено несколько версий Python, это не учитывается (в имени папки с пакетами нет версии Python).
pip install --prefix /myfolder [пакеты]
Проверяет, установлены ли зависимости. Пакеты будут установлены в /myfolder/lib/python3.5/site-packages/[пакеты].
pip install --root /myfolder [пакеты]
Проверяет зависимости так же, как и --prefix, но место установки будет /myfolder/usr/local/lib/python3.5/site-packages/[имя_пакета].
pip install --user [пакеты]
Устанавливает пакеты в $HOME: /home/[ПОЛЬЗОВАТЕЛЬ]/.local/lib/python3.5/site-packages. Python автоматически ищет пакеты в этом .local пути, поэтому вам не нужно добавлять его в PYTHONPATH.
⇒ В большинстве случаев --user является наилучшим вариантом. Если по какой-то причине нельзя использовать домашнюю папку, тогда стоит использовать --prefix.
Как обновить pip изнутри виртуального окружения?
Ошибка EnvironmentError: не найден mysql_config при установке mysql-python с помощью pip
Как заставить pip переустановить текущую версию?
Ошибка bash: команда pip не найдена
Как справиться с несколькими версиями Python и PIP?