Каков наилучший способ установки пакетов Python?

Как лучше всего установить пакеты Python в Ubuntu 11? Я недавно перешел на Ubuntu и хочу изучить лучшие практики.

Для контекста, я ищу установить пакет tweeststream, но я не видел его в моем менеджере пакетов Synaptic. Кроме того, я очень новичок в программировании, но я обычно могу следовать за примерами кода.

41
задан 20 August 2016 в 00:50

5 ответов

Я думаю, что лучшим способом для вас было бы установить систему упаковки Python типа «python-pip». Вы можете установить его с помощью Synaptic или Ubuntu Software Center.

Pip позволит вам легко устанавливать и удалять пакеты Python, просто как pip install package. В вашем случае это будет что-то вроде этого из терминала:

sudo pip install tweeststream
0
ответ дан 20 August 2016 в 00:50

В дополнение к ответу Zetah'a, команда для установки python-pip из терминала:

sudo apt-get install python-pip
0
ответ дан 20 August 2016 в 00:50

В дополнение к добавлению Новарчибальда, как правило, хорошей идеей является создание виртуальной среды для вашего проекта Python и установка зависимостей внутри. Это позволяет вам лучше контролировать зависимости и их версии. Чтобы настроить виртуальную среду, введите:

virtualenv --no-site-packages --distribute my_python_project

Затем активируйте ее с помощью:

cd my_python_project
source bin/activate

На этом этапе все, что вы устанавливаете с помощью pip, будет храниться в этой виртуальной среде. Если вы хотите установить что-то глобально, то сначала вы должны выйти из virtualenv с помощью:

deactivate

Вы можете узнать больше о virtualenv здесь .

0
ответ дан 20 August 2016 в 00:50

Попробуйте этот А платформа GUI для ЗЕРНЫШКА, разработанного с помощью PyQt4

А платформа GUI для ЗЕРНЫШКА, разработанного с помощью PyQt4

экран "Пуск"

enter image description here

, экран "Пуск" содержит опции для пользователя выбрать процесс, он хочет быть вынесенным.

можно также указать версию Python, на который он хочет, чтобы операции были выполнены.

меню файла имеет опцию "Выйти" (ярлык: Ctrl+Q) и "Списки Обновления", который обновляет файлы ресурсов, содержащие данные пакета.

Экран

enter image description here

Установки экран установки имеет панель поиска, которую пользователь может использовать для поиска и установить желаемый пакет (пакеты).

Экран

enter image description here

Обновления отображения на экране обновления список пакетов, которые являются устаревшими и могут быть обновлены.

Screem

enter image description here

Удаления отображения на экране удаления список пакетов, которые установлены в системе пользователя и могут быть удалены.

Окно

enter image description here

Прогресса окно прогресса является встроенным терминальным виджетом для GUI зернышка, который отображает выполнение процессов при выполнении операций.

0
ответ дан 20 August 2016 в 00:50

обновлено: 2018-08-17: начиная с conda-4.4.0 использовать анаконды с conda по activate на всех платформах

обновлено: 2017-03-27: двоичные файлы PEP 513 - manylinux для PyPI

обновлено: 2016-08-19: опция Continuum Anaconda

This является несколько дубликатом easy_install / pip или apt-get .

Для глобальных пакетов Python используйте либо Ubuntu Software Center, apt, apt-get или synaptic

Ubuntu использует Python для многих важных функций, поэтому вмешательство в Python может повредить вашу ОС , Это главная причина, по которой я никогда не использую pip в своей системе Ubuntu, но вместо этого я использую либо Ubuntu Software Center, synaptic , 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 & amp; scipy, если вы уже не установили gfortran, atlas-dev, blas-dev и lapack-dev, вы увидите бесконечный поток ошибок компиляции. Тем не менее, установка NumPy & amp; Скопировать в хранилище Ubuntu так же просто, как ...

$ sudo apt-get install python-numpy python-scipy

Вам повезло, потому что вы используете 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 513 , в пакете Python теперь есть manylinux двоичные файлы Index (PyPI) для популярных дистрибутивов Linux, таких как Ubuntu и Fedora . например, как указано выше для NumPy и SciPy, убедитесь, что вы установили gfortran, atlas-dev, blas- dev и lapack-dev из репозитория Ubuntu Например, NumPy и SciPy теперь распространяются для Ubuntu как колеса manylinux по умолчанию используя OpenBLAS вместо ATLAS. Вы все еще можете построить их из источника, используя опции pip --no-use-wheel или --no-binary <format control> .

~$ sudo apt-get install gfortran libblas-dev liblapack-dev libatlas-dev python-virtualenv
~$ mkdir ~/.venvs
~$ virtualenv ~/.venvs/my_py_proj
~$ source ~/.venvs/my_py_proj/bin/activate
~(my_py_proj)$ pip install --no-use-wheel numpy scipy

См. Следующий раздел «Вы не в sudoers» ниже, чтобы установить обновленные версии pip, setuptools, virtualenv или wheel в личный профиль с помощью --user Схема установки с пипсами. Вы можете использовать это для обновления пипса для личного использования как J.F. Себастьян указал в своем комментарии на другой ответ . ПРИМЕЧАНИЕ: -m действительно необходимо только в MS Windows при обновлении pip .

python -m pip install --user pip setuptools wheel virtualenv

Более новые версии pip автоматически кэшируют колеса, поэтому следующее полезно только для более старых версий pip. Поскольку вы можете в конечном итоге установить их много раз, рассмотрите возможность использования колеса с pip для создания рулевой рубки. Колесо уже включено в virtualenv начиная с версии 13.0.0 , поэтому, если ваша версия virtualenv устарела, вам может потребоваться сначала установить колесо.

~(my_py_proj)$ pip install wheel  # only for virtualenv < v13.0.0
~(my_py_proj)$ pip wheel --no-use-wheel numpy scipy

Это создаст двоичные файлы колес в <cwd>/wheelhouse, используйте -d, чтобы указать другой каталог. Теперь, если вы запускаете другой virtualenv и вам нужны те же пакеты, которые вы уже собрали, и вы можете установить их из своей рулевой рубки, используя pip install --find-links=<fullpath>/wheelhouse

Читать Установка модулей Python в документации по Python и Получить пакеты на главной странице индекса пакетов Python. Также пип , virtualenv и колесо .

Если вы не в , sudoers, и virtualenv не установлены.

Другой вариант использования виртуальной среды, или если вы используете общий ресурс Linux без привилегий root, то используйте схемы установки --user или --home=<wherever-you-want> Python с distutils Python установит пакеты со значением site.USERBASE или куда вы хотите. Более новые версии pip также имеют опцию --user . Не используйте sudo!

pip install --user virtualenv

Если ваша версия pip для Linux устарела, вы можете передать параметры настройки, используя --install-option , что полезно для передачи пользовательских опций в некоторые скрипты setup.py для некоторых пакетов, которые создают расширения, например, для установки PREFIX. Возможно, вам придется просто распаковать дистрибутив и использовать distutils для установки пакета старой школой, набрав python setup install [options]. Чтение некоторых из документации по установке и distutils документации может помочь.

Python достаточно хорош, чтобы добавить site.USERBASE к вашему PYTHONPATH впереди всего остального, поэтому изменения будут влиять только на вас. Популярное место для --home - ~/.local. См. Руководство по установке модуля Python для точной структуры файла и, в частности, где находятся ваши site-пакеты. Примечание : если вы используете схему установки --home, вам может потребоваться добавить ее в переменную среды PYTHONPATH , используя export в вашем .bashrc , .bash_profile или в вашей оболочке, чтобы ваши локализованные пакеты были доступны в Python.

Используйте Continuum Anaconda Python для математических, естественных наук, данных или личных проектов

Если вы используете Python для математических, естественных наук или данных, то IMO действительно хороший вариант: Anaconda-Python Distribution или более базовый miniconda distro , выпущенный Anaconda, Inc. (ранее известный как Continuum Analytics ) . Хотя использование Anaconda для личных проектов может принести пользу любому, установка по умолчанию включает более 500 математических и научных пакетов, таких как NumPy, SciPy, Pandas и Matplotlib , в то время как miniconda устанавливает только Anaconda-Python и менеджер среды conda. Anaconda устанавливается только в ваш личный профиль, т.е. /home/<user>/ и изменяют ваш ~/.bashrc или ~/.bash_profile, чтобы указать путь Anaconda к вашему личному $PATH , рекомендует источник conda.sh в вашем ~/.bashrc, который позволяет вам использовать conda activate <env|default is base> для запуска анаконды - это влияет только на вас - ваш системный путь не изменился . Поэтому вам не требуется доступ к 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 install -c pvlib pvlib  # install pvlib pkg from pvlib channel

Но 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 . EG : conda create -n py35sci python==3.5.2 numpy scipy matplotlib pandas statsmodels seaborn создаст стек науки / данных с использованием Python-3.5 в новой среде под названием py35sci. Вы можете переключать среды, используя conda. Начиная с conda-4.4.0, теперь это отличается от и virtualenv, который использует source venv/bin/activate, но до conda-4.4.0 команды conda, где ] тот же , что и virtualenv и также использовал source:

# AFTER conda-4.4 
~/Projects/myproj $ conda activate py35sci

# BEFORE conda-4.4 
~/Projects/myproj $ source activate py35sci

Но подождите, это еще не все! Anaconda также может устанавливать различные языки, такие как R для статистического программирования из канала Anaconda r . Вы даже можете настроить свой собственный канал для загрузки дистрибутивов пакетов , созданных для conda . Как уже упоминалось , conda-forge поддерживает автоматическую сборку многих пакетов на PyPI на канале Anaconda conda-forge .

Epilogue

Существует множество вариантов поддержки ваших проектов Python в Linux в зависимости от ваших личных потребностей и доступа. Тем не менее, если есть что-то, что, я надеюсь, вы откажетесь от этого ответа, это то, что вам почти никогда не нужно использовать sudo для установки пакетов Python . Использование sudo должно быть запахом для вас, что что-то не так. Вы были предупреждены.

Удачи и удачного кодирования!

0
ответ дан 20 August 2016 в 00:50

Другие вопросы по тегам:

Похожие вопросы: