Как указать каталог bin для установки pip с параметром --target

Чтобы привести пример, если я запустил команду

sudo pip install gunicorn

Теперь есть файл

/usr/local/bin/gunicorn

и папку

/usr/local/lib/python2.7/site-packages/gunicorn

И я могу запустить "gunicorn" из оболочки.

Однако, если я запустил команду

sudo pip install gunicorn --target=~/tmp_directory

В папке

 ~/tmp_directory/gunicorn

Однако в любом месте нет "мусора/пушки", и я не могу запустить "боевик" из оболочки. Просматривая документацию по протоколу, я ничего не могу найти для этого конкретного случая. Точная причина для этого - попытаться настроить пользовательский buildpack на Heroku.

Ответ 1

Вы можете sudo ln -s ~/tmp_directory/gunicorn /usr/bin/gunicorn.

Если я правильно понимаю ваши потребности, вам предлагается попробовать virtualenv, инструмент для создания изолированных сред Python. Вы можете установить разные версии пакетов Python для каждого вашего проекта на одном сервере. Очень рекомендуется для разработки Python. Я использую virtualenvwrapper, чтобы сделать его немного проще в использовании

Ответ 2

Я просто нашел, что на самом деле можно сказать "pip", куда помещать скрипты, данные и т.д.

Вы можете использовать --install-option для передачи параметров setuptools. Поэтому, если вы хотите указать, где разместить сценарии, вы можете:

pip install gunicorn --install-option="--install-scripts=$PWD/bin" -t python_modules/

Теперь у вас есть команда gunicorn внутри bin/ в текущем каталоге и пакете, установленном в целевом каталоге python_modules.

bin/gunicorn

Ответ 3

Проблема с этой проблемой была создана в GitHub: https://github.com/pypa/pip/issues/3934

Это связано с тем, что флаг --install-option="--install-scripts=$PWD/bin", который необходим, не может использоваться с .whl файлами:

.../lib/python2.7/site-packages/pip/commands/install.py:194: 
UserWarning: Disabling all use of wheels due to the use of --build-options / --global-options / --install-options.
cmdoptions.check_install_build_global(options)