Как указать каталог 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)