На этот вопрос действительно нет однозначного «ответа», но определенно есть несколько полезных концепций, которые могут помочь вам принять решение.
Первый вопрос, на который необходимо ответить в вашем случае использования, - это «Хочу ли я использовать системный Python?» Если вы хотите использовать Python, распространяемый с вашей операционной системой, то использование метода установки apt-get может подойти. Тем не менее, в зависимости от метода распространения операционной системы, вам все равно придется задать еще несколько вопросов, например: «Я хочу установить несколько версий этого пакета?» Если ответ положительный, то, вероятно, не стоит использовать что-то вроде apt. Dpkg в значительной степени просто распакует архив в корне файловой системы, поэтому сопровождающий пакет должен убедиться, что пакет устанавливается безопасно с очень небольшими предположениями. В случае с большинством пакетов debian, я бы предположил (кто-то может поправить меня здесь), что они просто распаковывают и предоставляют пакет верхнего уровня.
Например, скажем, пакет "virtualenv", вы получите /usr/lib/python2.x/site-packages/virtualenv
. Если вы установите его, easy_install
вы получите что-то вроде /usr/lib/python2.x/site-packages/virtualenv.egg-link
этого, /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.egg
которое может указывать на каталог или заархивированное яйцо. Pip делает нечто подобное, хотя он не использует яйца и вместо этого помещает пакет верхнего уровня непосредственно в lib
каталог.
Я могу сбиться с пути, но дело в том, что каждый метод учитывает разные потребности. Вот почему такие инструменты, как virtualenv, полезны, поскольку они позволяют вам изолировать ваши библиотеки Python так, чтобы вы могли иметь любую необходимую комбинацию библиотек и версий.
Setuptools также позволяет устанавливать пакеты как многоверсионные, что означает, что не создается единственная программа dule_name.egg-link
. Чтобы импортировать эти пакеты, вам нужно использовать pkg_resources и__import__
функцию.
Возвращаясь к исходному вопросу, если вы довольны системным питоном и планируете использовать virtualenv и pip для создания сред для различных приложений, тогда установка virtualenv и / или pip на системном уровне с использованием apt-get кажется вполне подходящей. Однако одно предостережение заключается в том, что если вы планируете обновить свои дистрибутивы Python, это может иметь волновой эффект в ваших виртуальных библиотеках, если вы снова подключитесь к пакетам вашего системного сайта.
Я также должен упомянуть, что ни один из этих вариантов по своей сути не лучше других. Просто у них разные подходы. Использование системной версии - отличный способ установки приложений Python, но разработка с использованием Python может оказаться очень сложной задачей. Простая установка и настройка очень удобны в мире без virtualenv, но если вам нужно использовать разные версии одной и той же библиотеки, она также становится довольно громоздкой. Pip и virtualenv действительно больше похожи на виртуальную машину. Вместо того, чтобы устанавливать все рядом друг с другом, вы просто создаете совершенно новую среду. Обратной стороной здесь является то, что 30+ виртуальных машин спустя вы, возможно, израсходовали довольно много дискового пространства и загромождали свою файловую систему.
Как видите, из-за множества вариантов трудно сказать, какой метод использовать, но, немного изучив варианты использования, вы сможете найти метод, который работает.
ez_setup.py
за «облегченную версию» получения пипса. Я бы сделал то же самое, но опасаюсь, что в ближайшем будущем он сломается, и я снова застряну здесь (как я всегда это делаю)