Почему pip install biopython не работает (но другие пакеты успешно)?

Я пытаюсь установить пакеты Python в каталог, совместно используемый группой разработчиков. У нас нет разрешения sudo. Это работает для некоторых пакетов (например, seqmagick), но не для других (например, biopython). Может ли кто-нибудь сказать мне, чем отличаются те, которые терпят неудачу. и есть ли обходной путь?

$ pip --version
pip 1.5.4 from /usr/lib/python2.7/dist-packages (python 2.7)

Я создал такой файл setup.cfg в текущем каталоге,

[install]
install-base=/tmp/group/python
install-purelib=$base/lib
install-platlib=$base/lib.$PLAT
install-scripts=/tmp/different/bin
install-headers=$base/include
install-data=$base/data

Следующее работает, и все оказывается в нужном месте:

$ pip install --no-deps seqmagick

Но это не так,

$ pip install --no-deps биопитон

Неудача в том,

running install_lib
creating /usr/local/lib/python2.7/dist-packages/BioSQL
error: could not create '/usr/local/lib/python2.7/dist-packages/BioSQL': Permission denied

Почему pip (или setup.py?) устанавливает что-то в /usr/local, когда схема setup.cfg указывает в другом месте?

Заранее спасибо за любую информацию.


person Chris Warth    schedule 05.01.2015    source источник
comment
Это один из основных вариантов разработки инструмента virtualenv, который упрощает и упрощает установку пользователем пакетов в места, отличные от общесистемных. Использование --no-deps в pip кажется нецелесообразным, потому что pip — это менеджер пакетов, и вы побеждаете одну из основных функций управления пакетами; это почти гарантирует, что установленный пакет не будет работать, если у него есть зависимости. Используйте virtualenv, если можете.   -  person msw    schedule 06.01.2015
comment
Я ценю ответ. Я добавил --no-deps, чтобы не путать проблему с длинным списком устанавливаемых зависимостей. Я хотел сузить вопрос до двух пакетов, один из которых поддерживает setup.cfg, а другой — нет. Покопавшись в этом некоторое время, кажется, что единственный надежный способ установить пакеты (включая колеса) в нестандартное место без использования virtualenv — это --user и PYTHONUSERBASE. К сожалению, тогда вы не сможете разделить сценарии в другом месте.   -  person Chris Warth    schedule 07.01.2015


Ответы (1)


Вероятно, это связано с тем, что у вас очень старая версия pip, сначала попробуйте это:

pip install pip --upgrade

Перекрестная ссылка https://github.com/biopython/biopython/pull/1307#issuecomment-340407171

person peterjc    schedule 09.11.2017