обновлено: 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: Опция Continuum Anaconda
Это в некотором роде дубликат 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. Кроме того, также устанавливаются все необходимые зависимости и ведется журнал установок, чтобы их можно было откатить. Я думаю, что большинство пакетов имеют соответствующие Панель запуска репозитории, чтобы вы могли регистрировать проблемы.
Еще одна причина использования любого из пакетов Ubuntu заключается в том, что иногда эти пакеты Python имеют разные имена в зависимости от того, откуда вы их загрузили. Python-chardet - это пример пакета, который в свое время назывался one thing в 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 так же просто, как...
$ 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, поскольку обычно хорошо обрабатывает зависимости. Однако вы будет мочь придется самому разбираться с некоторыми зависимостями, но с тех пор, как ОПТОСОЗ 513 был принят, теперь есть manylinux
двоичные файлы в индексе пакетов Python (PyPI) для популярных дистрибутивов Linux, таких как Ubuntu и Fedora. например, как упоминалось выше для NumPy и SciPy, убедитесь, что вы установили gfortran, atlas-dev, blas-dev и lapack-dev из репозитория Ubuntu Например, оба Тупой и СциПи теперь распространяются для 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 или wheels на ваш личный профиль с использованием --user
схема установки с помощью pip. Вы можете использовать это для обновления pip для вашего личного использования, как Дж. Ф. Себастьян указал в своем комментарии к другому ответу. ПРИМЕЧАНИЕ: в -m
действительно необходимо только в MS Windows при обновлении pip.
python -m pip install --user pip setuptools wheel virtualenv
Более новые версии pip автоматически кэшируют диски, поэтому следующее полезно только для более старых версий pip. Поскольку вы можете в конечном итоге устанавливать их много раз, рассмотрите возможность использования wheel с pip для создания рулевой рубки. Колесо уже включено в virtualenv
начиная с версии 13.0.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
Это приведет к созданию двоичных файлов wheel в <cwd>/wheelhouse
, использовать -d
чтобы указать другой каталог. Теперь, если вы запускаете другой virtualenv и вам нужны те же пакеты, которые вы уже создали, вы можете установить их в своей рулевой рубке с помощью pip install --find-links=<fullpath>/wheelhouse
Прочитай Установка модулей Python в документации по Python и Установка пакетов на Главная страница индекса пакетов Python. Также зернышко, венв, virtualenv и колесо.
Если ты не в sudoers
и virtualenv
не установлен.
Другой вариант использования виртуальной среды, или если вы используете общий ресурс Linux без прав суперпользователя, то используя либо --user
или --home=<wherever-you-want>
Схемы установки Python с помощью Python distutils
установит пакеты со значением 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
. Посмотрите на Питона руководство по установке модуля для точной файловой структуры и конкретно для того, где находятся ваши пакеты сайта. Примечание: если вы используете --home
схема установки, то вам, возможно, потребуется добавить ее в PYTHONPATH
переменная среды, использующая export
В вашем .bashrc
, .bash_profile
или в вашей оболочке, чтобы ваши локализованные пакеты были доступны на Python.
Воспользуйся Континуум Анаконда Питон для математики, естественных наук, обработки данных или личных проектов
Если вы используете Python для математики, естественных наук или обработки данных, то IMO действительно хороший вариант - это дистрибутив Anaconda-Python или более простые дистрибутив miniconda выпущенный Anaconda, Inc. (ранее известная как Непрерывная аналитика). Хотя любой желающий мог бы извлечь выгоду из использования Anaconda для личных проектов, установка по умолчанию включает в себя более 500 математических и научных пакетов, таких как NumPy, SciPy, Pandas и Matplotlib, в то время как miniconda устанавливает только Anaconda-Python и conda environment manager. Anaconda устанавливается только в ваш личный профиль, международная единица: /home/<user>/
и изменяет ваш ~/.bashrc
или ~/.bash_profile
чтобы добавить путь Анаконды к вашему личному $PATH
рекомендует поиск поставщиков conda.sh
В вашем ~/.bashrc
который позволяет вам использовать conda activate <env|default is base>
чтобы запустить анаконду - это влияет только на ты - ваш системный путь не изменился. Поэтому ты делаешь нет нужен корневой доступ или sudo
чтобы использовать Анаконду! Если вы уже добавили Anaconda-Python, miniconda или conda в свой личный путь, то вам следует удалить PATH
экспорт из вашего ~/.bashrc
, и обновление до новая рекомендация, так что ваш системный Python снова будет первым.
Это в чем-то похоже на --user
вариант, который я объяснил в предыдущем разделе, за исключением того, что он применим к Python в целом, а не только к пакетам. Поэтому Анаконда - это полностью отдельный от вашей системы Python, это не будет мешать вашему системному Python, и только вы можете использовать или изменять его. Поскольку он устанавливает новую версию Python и все его библиотеки, вам потребуется не менее 200 МБ свободного места, но он очень хорошо справляется с кэшированием и управлением библиотеками, что важно для некоторых интересных вещей, которые вы можете сделать с Anaconda.
Anaconda курирует коллекцию двоичных файлов и библиотек Python, необходимых для зависимостей в онлайн-репозиторий (ранее называвшийся бинстар), и они также размещают пользовательские пакеты как разные "каналы". Менеджер пакетов, используемый 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 если вы знакомы с этим инструментом. Анаконда conda
также позволяет создавать виртуальные среды с различный версии Python. напр.: 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 для статистического программирования из Анаконда r
канал. Вы даже можете настроить свой собственный канал для загрузки дистрибутивов пакетов создан для conda. Как уже упоминалось конда-кузница поддерживает автоматизированные сборки многих пакетов на PyPI на conda-канал forge Anaconda.
Эпилог
Существует множество вариантов поддержки ваших проектов на Python в Linux в зависимости от ваших личных потребностей и доступа. Однако, если есть что-то, что, я надеюсь, вы уберете из этого ответа, так это то, что вы никогда не должны использовать sudo pip
для установки пакетов Python. Использование sudo
должен быть предупреждение вам следует быть особенно осторожными, потому что вы внесете общесистемные изменения, которые могут иметь плохие последствия. Вы были предупреждены.
Удачи и счастливого кодирования!