Насправді немає жодної "відповіді" на це питання, але, безумовно, є кілька корисних концепцій, які можуть допомогти вам прийняти рішення.
Перше запитання, на яке потрібно відповісти у вашому випадку використання, - "Чи хочу я використовувати систему 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__
функцію.
Повертаючись до свого початкового питання, якщо ви задоволені системним python і плануєте використовувати virtualenv та pip для побудови середовищ для різних додатків, то встановлення virtualenv та / або pip на системному рівні за допомогою apt-get видається абсолютно доречним. Одне слово обережності полягає в тому, що якщо ви плануєте оновити свої дистрибутиви Python, це може мати ефект пульсацій через ваші virtualenvs, якщо ви повернетеся назад до системних пакетів веб-сайтів.
Слід також зазначити, що жоден із цих варіантів за своєю суттю не кращий за інші. Вони просто застосовують різні підходи. Використання системної версії є прекрасним способом встановлення програм Python, проте це може бути дуже складним способом розробки за допомогою Python. Проста установка та налаштування інструментів дуже зручна у світі без virtualenv, але якщо вам потрібно використовувати різні версії однієї і тієї ж бібліотеки, то вона також стане досить громіздкою. Pip і virtualenv насправді діють більше як віртуальна машина. Замість того, щоб подбати про те, щоб встановлювати речі поруч, ви просто створюєте абсолютно нове середовище. Недоліком тут є те, що 30+ віртуальних версій пізніше, можливо, ви витратили досить багато дискового простору і захарастили свою файлову систему.
Як бачите, за багатьма варіантами важко сказати, який метод використовувати, але, трохи дослідивши ваші випадки використання, ви зможете знайти метод, який працює.
ez_setup.py
за "полегшену версію" отримання піп. Я зробив би те саме, але побоювався, що найближчим часом воно зламається, і я знову застряю тут (як завжди)