Каков наилучший способ установки пакетов Python в Ubuntu 11? Я недавно перешел на Ubuntu и хочу изучить лучшие практики.
Для контекста я ищу установить пакет tweeststream, но я не видел его в моем менеджере пакетов Synaptic. Кроме того, я очень новичок в программировании, но обычно я могу следовать за примерами кода.
Ответы:
Я думаю, что лучшим способом для вас было бы установить систему упаковки Python типа "python-pip". Вы можете установить его с помощью Synaptic или Ubuntu Software Center.
Pip позволит вам легко устанавливать и удалять пакеты Python, просто как
pip install package
. В вашем случае это будет что-то вроде этого из терминала:источник
sudo pip <anything>
следует очень осторожно. Посколькуtweetstream
нет в Центре программного обеспечения Ubuntu , я рекомендую использовать virtualenv . tweetstream - хsetup.py
требует ,anyjson
который является Ubuntu пакет . Отказ от установки tweetstream вvirtualenv
может привестиanyjson
к сбою других приложений Ubuntu, от которых он зависит . Устранить неисправность сложно.sudo pip
в Ubuntu. @MarkMikofski: вам не нужен virtualenv (если вы не хотите этого по какой-то определенной причине).python -mpip install --user package-name
Можно установить пакетpackafe-name
для текущего пользователя. Если есть сложные (большие расширения C) зависимости; вы можете установить их, используяapt-get
, чтобы избежать установки зависимостей сборки без необходимости.обновлено: 2019-05-11: В этом посте в основном упоминается
virtualenv
, но в соответствии с документом Python об установке модуля , так как в Python 3.5 «venv
теперь рекомендуется использовать для создания виртуальных сред», хотяvirtualenv
он является альтернативой для версий Python до 3.4 ,обновлено: 2018-08-17: начиная с использования conda -4.4.0
conda
дляactivate
анаконды на всех платформахобновлено: 2017-03-27: PEP 513 -
manylinux
двоичные файлы для PyPIОбновлено: 2016-08-19: Континуум Anaconda Option
Это в некоторой степени дубликат easy_install / pip или apt-get .
Для глобальных пакетов Python используйте Ubuntu Software Center, apt, apt-get или synaptic.
Ubuntu использует Python для многих важных функций, поэтому вмешательство в Python может повредить вашу ОС. Это основная причина , почему я никогда не использую
pip
в моей системе Ubuntu, но вместо этого я использую либо Ubuntu Software Center, синаптические ,apt-get
или новее толькоapt
, что все по умолчанию установки пакетов из репозитория Ubuntu . Эти пакеты тестируются, как правило, предварительно скомпилированы, поэтому они устанавливаются быстрее и в конечном итоге предназначены для Ubuntu. Кроме того, все необходимые зависимости также установлены и ведется журнал установок, чтобы их можно было откатить. Я думаю, что большинство пакетов имеют соответствующие репозитории Launchpad, так что вы можете подавать проблемы.Еще одна причина использования пакетов Ubuntu заключается в том, что иногда эти пакеты Python имеют разные имена в зависимости от того, откуда вы их загрузили. Python-chardet - это пример пакета, который одно время назывался в PyPI одним, а в репозитории Ubuntu - другим. Поэтому,
pip install requests
если вы сделаете что- то подобное, вы не поймете, что chardet уже установлен в вашей системе, потому что версия Ubuntu имеет другое имя, и, следовательно, установите новую версию, которая повредит вашу систему незначительным незначительным образом, но все же зачем вам это делать.В общем, вы хотите установить только доверенный код в вашу ОС. Так что вы должны нервничать по поводу набора текста
$ sudo pip <anything-could-be-very-bad>
.Наконец, некоторые вещи проще установить с помощью пакетов Ubuntu. Например, если вы попытаетесь
pip install numpy
установить numpy & scipy, если вы еще не установили gfortran, atlas-dev, blas-dev и lapack-dev, вы увидите бесконечный поток ошибок компиляции. Однако установить Numpy & Scipy через репозиторий Ubuntu так же просто, как ...Вам повезло, потому что вы используете Ubuntu, один из наиболее широко поддерживаемых и часто обновляемых существующих дистрибутивов. Скорее всего, каждый пакет Python, который вам понадобится, находится в репозитории Ubuntu и, вероятно, уже установлен на вашем компьютере. И каждые 6 месяцев будет выпущен новый цикл пакетов с последним дистрибутивом Ubuntu.
Если вы на 100% уверены, что пакет никак не повлияет на вашу систему Ubuntu, вы можете установить его с помощью pip, и Ubuntu достаточно хорош, чтобы отделить эти пакеты от пакетов дистрибутивов, поместив пакеты дистрибутивов в папку с именем
dist-packages/
, В хранилище Ubuntu есть как pip, virtualenv, так и setuptools. Тем не менее, я поддерживаю предложение Войцеха использовать virtualenv.Для личных проектов Python используйте pip и wheel в virtualenv
Если вам нужна последняя версия или модуль отсутствует в репозитории Ubuntu, запустите virtualenv и используйте pip для установки пакета. Несмотря на то, что pip и setuptools объединены, IMO pip предпочтительнее, чем easy-install или distutils, потому что он всегда будет ждать, пока пакет полностью не будет загружен и собран, прежде чем скопировать его в вашу файловую систему, и он обновляет или удаляет бриз. Во многих отношениях он похож на apt-get в том смысле, что он обычно хорошо обрабатывает зависимости. Однако вам
,возможно, придется самостоятельно обрабатывать некоторые зависимости, но после принятия PEP 513manylinux
в индексе пакетов Python (PyPI) теперь есть бинарные файлы для популярных дистрибутивов Linux, таких как Ubuntu и Fedora .например, как упомянуто выше для NumPy и SciPy, убедитесь, что вы установили gfortran, atlas-dev, blas-dev и lapack-dev из репозитория Ubuntu.Например, и NumPy, и SciPy теперь по умолчанию распространяются для Ubuntu в качествеmanylinux
колес , используя вместо этого OpenBLAS атлас. Вы все еще можете построить их из исходного кода, используя параметры pip--no-use-wheel
или--no-binary <format control>
.См. Следующий раздел «Вы не в
sudoers
» ниже, чтобы установить обновленные версии pip, setuptools, virtualenv или wheel в свой личный профиль, используя--user
схему установки с pip. Вы можете использовать это, чтобы обновить pip для личного использования, как JF Sebastian указал в своем комментарии к другому ответу . ПРИМЕЧАНИЕ:-m
действительно необходимо только в MS Windows при обновлении pip .Более новые версии pip автоматически кэшируют колеса, поэтому следующее полезно только для более старых версий pip. Поскольку вы можете в конечном итоге установить их много раз, рассмотрите возможность использования колеса с pip для создания рулевой рубки. Колесо уже включено в
virtualenv
начиная с версии 13.0.0, поэтому, если ваша версияvirtualenv
слишком старая, вам может потребоваться сначала установить колесо.Это создаст двоичные файлы колес
<cwd>/wheelhouse
, используйте-d
для указания другого каталога. Теперь, если вы запустили еще один virtualenv и вам нужны те же пакеты, которые вы уже собрали, вы можете установить их из своей рулевой рубки, используяpip install --find-links=<fullpath>/wheelhouse
Прочтите Установка модулей Python в документации по Python и Установка пакетов на главной странице индекса пакетов Python . Также pip , venv , virtualenv и колесо .
Если вы не в
sudoers
иvirtualenv
не установлены.Другой вариант использования виртуальной среды, или если вы используете общий ресурс Linux без привилегий root, то использование схем установки Python
--user
или--home=<wherever-you-want>
Python с установками Pythondistutils
приведет к установке пакетов со значениемsite.USERBASE
или туда, куда вы хотите. Более новые версии pip также имеют--user
опцию. Не используйтеsudo
!Если ваша версия pip для Linux слишком старая, вы можете передать параметры настройки, используя
--install-option
которые можно использовать для передачи пользовательских параметров в некоторыеsetup.py
сценарии для некоторых пакетов, которые создают расширения, например, для установкиPREFIX
. Возможно , вам просто извлечь распределение и использованиеdistutils
для установки пакета старой школы пути, набравpython setup install [options]
. Чтение некоторой документации по установке иdistutils
документации может помочь.Python достаточно хорош, чтобы добавить
site.USERBASE
к вашемуPYTHONPATH
опережению что-либо еще, поэтому изменения будут влиять только на вас. Популярное место для--home
это~/.local
. См. Руководство по установке модуля Python для точной структуры файла и, в частности, где находятся ваши пакеты сайта. Примечание : если вы используете--home
схему установки , то вам может понадобиться , чтобы добавить его вPYTHONPATH
переменную окружения , используяexport
в вашем.bashrc
,.bash_profile
или в оболочке для локализованных пакетов будут доступны в Python.Используйте Continuum Anaconda Python для математических, научных, личных или личных проектов
Если вы используете Python для математики, науки или данных, то для IMO действительно хорошим вариантом будет Anaconda-Python Distribution или более простой дистрибутив miniconda, выпущенный Anaconda, Inc. (ранее известный как Continuum Analytics ) . Хотя использование Anaconda для личных проектов может принести пользу любому, установка по умолчанию включает более 500 математических и научных пакетов, таких как NumPy, SciPy, Pandas и Matplotlib , в то время как miniconda устанавливает только Anaconda-Python и менеджер среды conda. Анаконда устанавливается только в свой личный профиль, то есть:
/home/<user>/
иизменяет вашрекомендует поиск~/.bashrc
или~/.bash_profile
предварять путь Анаконды к вашим личнымам$PATH
conda.sh
в вашем,~/.bashrc
который позволяет вам использоватьconda activate <env|default is base>
anaconda - это влияет только на вас - ваш системный путь не изменяется . Поэтому вам не нужен root-доступ илиsudo
использование Anaconda! Если вы уже добавили Anaconda-Python, miniconda или conda в свой личный путь, то вам следует удалитьPATH
экспорт из вашего~/.bashrc
и обновить до новой рекомендации , чтобы ваш системный Python снова был первым.Это несколько похоже на
--user
опцию, которую я объяснил в предыдущем разделе, за исключением того, что она применима к Python в целом, а не только к пакетам. Поэтому Anaconda полностью отделена от вашей системы Python , она не будет мешать вашей системе Python, и только вы можете использовать или изменять ее. Поскольку он устанавливает новую версию Python и все его библиотеки, вам потребуется не менее 200 МБ места, но он очень умен в отношении кэширования и управления библиотеками, что важно для некоторых интересных вещей, которые вы можете делать с Anaconda.Anaconda хранит набор двоичных файлов и библиотек Python, необходимых для зависимостей в онлайн-хранилище (ранее называвшемся binstar ) , и они также размещают пользовательские пакеты в виде различных «каналов». Менеджер пакетов, используемый Anaconda,
conda
по умолчанию устанавливает пакеты от Anaconda, но вы можете указать другой «канал», используя-c
опцию.Установите пакеты так
conda
же, какpip
:Но
conda
могу сделать гораздо больше! Он также может создавать и управлять виртуальными средами так же, какvirtualenv
. Поэтому, поскольку Anaconda создает виртуальные среды,pip
менеджер пакетов можно использовать для установки пакетов из PyPI в среду Anaconda без root илиsudo
. Вы не использоватьsudo
с Анаконды! Предупреждение! Будьте осторожны, хотя при смешиванииpip
иconda
в среде Anaconda, b / c, вам придется более тщательно управлять зависимостями пакетов. Другим вариантомpip
в среде conda является использование канала conda-forge., но также лучше всего делать это в свежей среде conda с conda-forge в качестве канала по умолчанию. В крайнем случае, если вы не можете найти пакет нигде, кроме PyPI, рассмотрите возможность использования, а--no-deps
затем установите оставшиеся зависимости вручную, используяconda
.Анаконда также в чем-то похожа на Ruby RVM, если вы знакомы с этим инструментом. Anaconda
conda
также позволяет создавать виртуальные среды с различными версиями Python . Например :conda create -n py35sci python==3.5.2 numpy scipy matplotlib pandas statsmodels seaborn
создаст стек научных данных с использованием Python-3.5 в новой среде с именемpy35sci
. Вы можете переключать среды с помощьюconda
. Так как Конда-4.4.0, теперь это отличается , чтобы ,virtualenv
который используетsource venv/bin/activate
, но предшествующий Конда-4.4.0 этиconda
команды были так же , какvirtualenv
и используется такжеsource
:Но подождите, это еще не все! Anaconda также может устанавливать различные языки, такие как R, для статистического программирования из канала Anaconda
r
. Вы даже можете настроить свой собственный канал для загрузки дистрибутивов пакетов, созданных для conda . Как уже упоминалось, conda-forge поддерживает автоматическую сборку многих пакетов на PyPI на канале Ancononda conda-forge .эпилог
Существует много вариантов поддержки ваших проектов Python в Linux в зависимости от ваших личных потребностей и доступа. Однако, если есть что-то, что я надеюсь, вы откажетесь от этого ответа, что вам почти никогда не нужно будет использовать
sudo
для установки пакетов Python . Использованиеsudo
должно быть запахом для вас, что что-то не так. Вы были предупреждены.Удачи и счастливого кодирования!
источник
sudo
работая сpip
. Отличная рецензия, спасибо за эту информацию.pip install numpy
следует установить все зависимостиpip install <package>
будут устанавливаться только зависимости пакета Python, перечисленные вinstall_requires
разделеsetup.py
. Например: установка Jupyter не установит библиотеку pandoc на Haskell для экспорта записных книжек Jupyter в виде LaTeX и т. Д.conda install <package>
вероятно, будут установлены все зависимости, включая C / C ++, FORTRAN и т. Д., Даже библиотеки Haskell, потому что conda не просто управляет пакетами Python, такими как pip, она управляет средами. Так что, если у вас была Anaconda или miniconda, тогда выconda install Jupyter
устанавливаете все в файл рецептаmeta.yml
, включая библиотеку pandoc Haskell . Для получения дополнительной информации см. PyPAВ дополнение к добавлению Novarchibald, как правило, хорошая идея - создать виртуальную среду для вашего проекта Python и установить внутри нее зависимости. Это позволяет вам лучше контролировать зависимости и их версии. Чтобы настроить виртуальную среду, введите:
Затем активируйте его с помощью:
На этом этапе все, что вы устанавливаете с помощью pip, будет храниться в этой виртуальной среде. Если вы хотите установить что-то глобально, сначала вы должны выйти из virtualenv с помощью:
Вы можете узнать больше о virtualenv здесь .
источник
virtualenv
опции--no-site-packages
и--distribute
устарели в настоящее время и больше не действуют.В дополнение к ответу Zetah'a, команда для установки python-pip из терминала:
источник
Попробуйте это графический интерфейс для PIP, разработанный с использованием PyQt4
Фреймворк с графическим интерфейсом для PIP, разработанный с использованием PyQt4
Начальный экран
Начальный экран содержит параметры для пользователя, чтобы выбрать процесс, который он хочет выполнить.
Можно также указать версию python, с которой он хочет выполнить операции.
В меню «Файл» есть опция «Выход» (ярлык: Ctrl + Q) и «Обновить списки», которая обновляет файлы ресурсов, содержащие данные пакета.
Экран установки
Экран установки имеет панель поиска, которую пользователь может использовать для поиска и установки желаемых пакетов.
Экран обновления
На экране обновления отображается список пакетов, которые устарели и могут быть обновлены.
Удаление Screem
На экране удаления отображается список пакетов, которые установлены в системе пользователя и могут быть удалены.
Окно прогресса
Окно хода выполнения представляет собой встроенный виджет терминала для PIP-GUI, который отображает процессы, запущенные во время выполнения операций.
источник