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