Рекомендуемый способ установки pip (3) на centos7
Я интересуюсь рекомендуемым способом установки pip3 для python3.6 (на сегодняшний день, май 2018 года) на текущую версию centos7 (7.5.1804) и принятый ответ " Как установить pip в CentOS 7? кажется устаревшим, потому что:
yum search -v pip
выходы (среди прочего):
python2-pip.noarch : A tool for installing and managing Python 2 packages
Repo : epel
python34-pip.noarch : A tool for installing and managing Python3 packages
Repo : epel
и python34-pip
кажется более простым (более новым?) более простым способом, чем принятый ответ о том, как установить pip в CentOS 7? :
sudo yum install python34-setuptools
sudo easy_install-3.4 pip
Но так как версии python, установленные на моем компьютере, - 2.7.5 и 3.6.3, почему это python34-pip, а не python36-pip? Является ли тот же самый для 3. 4+ (до текущего 3.6.3)?
Ответы
Ответ 1
-
Пипс такой же для 3. 4+
Нет, это не так. Одна установка pip
обслуживает один дистрибутив Python (pip2.7
/pip3.4
/pip3.5
т.д.).
-
Начиная с Python 3.5, pip
уже входит в состав дистрибутива python, поэтому вы можете просто запустить python3.6 -m pip
вместо pip
.
-
Python 3.6 недоступен в CentOS 7 ванильного репо. Я обычно прибегаю к репо IUS, когда мне нужно установить новый Python на CentOS. Он всегда имеет самую последнюю версию Python, текущей является 3.6.5. Это также предлагает соответствующий пакет pip
.
$ yum install https://centos7.iuscommunity.org/ius-release.rpm
$ yum install python36u python36u-devel python36u-pip
К сожалению, IUS пока не предлагает пакет для Python 3.7, поэтому, если вы ищете Python 3.7 для CentOS 7, сборка из исходного кода - ваш единственный вариант.
Изменение: когда yum
не вариант
Вы должны предпочесть самонастройки решения, описанное в этом ответе, так как это самый надежный способ получить рабочий pip
установлен.
Ответ 2
Чтобы установить pip для python 3.6 на CentOS 7, вам нужно запустить
$ python3.6 -m ensurepip
Ответ 3
Следуйте этим командам в Centos 7
yum install python36
yum install python36-devel
yum install python36-setuptools
easy_install-3.6 pip
проверить версию протокола:
pip3 -V
pip 18.0 from /usr/local/lib/python3.6/site-packages/pip-18.0-py3.6.egg/pip (python 3.6)
Ответ 4
По какой-то причине Pip не входит в версию EPEL версии python 3.6. Я предполагаю, что приличное количество людей (таких как я) найдет эту страницу из-за этого.
$ sudo yum install -y python36
...
$ python36 -m pip
/usr/bin/python36: No module named pip
Поэтому в этом случае пакет setuptools был самым простым решением.
$ sudo yum install python36-setuptools
$ sudo easy_install-3.6 pip
...
$ python36 -m pip --version
pip 18.0 from /usr/local/lib/python3.6/site-packages/pip-18.0-py3.6.egg/pip (python 3.6)
Ответ 5
Попробуй это::
sudo yum update
sudo yum install -y python36u python36u-libs python36u-devel python36u-pip
Работает на меня отлично.
Ответ 6
Если вы видите, что pip3 связан с путем python2:
$ pip3 -V
пип 8.1.2 из /usr/lib/python2.7/site-packages/pip (python 2.7)
Вы, вероятно, получите:
$ pip3 install --upgrade pip
TypeError: parse() получил неожиданный аргумент ключевого слова "transport_encoding"
Затем попробуйте очистить кэш команд с помощью хэша -r. Это сработало для меня:
# Install Python 3:
sudo yum install python36 -y
# Install & Upgrade pip3
sudo python36 -m pip install --upgrade pip
# Validate pip3 installation:
sudo python3.6 -m ensurepip
# Successfully installed pip-10.0.1 setuptools-39.0.1
# Clear commands cache
hash -r
# might be required if getting in bash: /usr/bin/pip3: No such file or directory)
pip3 -V
# pip 19.0.3 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
which pip3
# /usr/local/bin/pip3
pip2 -V
# pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
which pip2
# /usr/local/bin/pip2
# Install your Python3 module:
sudo /usr/local/bin/pip3 install {required module for python3}
Ответ 7
Теперь в EPEL есть пакет python36-pip
.
Во-первых, убедитесь, что EPEL доступен, и установите epel-release
если он отсутствует (эта команда работает на новой системе; ymmv в зависимости от конкретных конфигураций репозиториев Yum):
if ! { yum makecache fast >/dev/null 2>&1 && yum --cacheonly repolist enabled | grep -qE '^epel\/' ; }; then
yum install --assumeyes epel-release
fi
Установка python36-pip
также установит python36
, python36-libs
и python36-setuptools
:
yum install --assumeyes python36-pip
Теперь вы можете проверить версию (да, она старая, но это то, что исходит от EPEL):
$ pip3 --version
pip 8.1.2 from /usr/lib/python3.6/site-packages (python 3.6)
Если вы не хотите отклоняться от файлов, предоставляемых python36-pip
, и не хотите видеть предупреждения о старости pip, см. fooobar.com/info/5697118/... чтобы заставить замолчать сообщения,