web-dev-qa-db-ja.com

centos7にpip(3)をインストールする推奨方法

現在のバージョンのcentos7(7.5.1804)にpython3.6用のpip3をインストールする推奨方法(今日、2018年5月)と CentOS 7にpipをインストールする方法? は時代遅れのようです:

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は、 CentOS 7にpipをインストールする方法? の受け入れられている答えよりも(新しい?)簡単な方法のようです。

Sudo yum install python34-setuptools

Sudo easy_install-3.4 pip

しかし、私のマシンにインストールされているpythonのバージョンは2.7.5と3.6.3なので、なぜpython36-pipではなくpython34-pipなのですか? pipは3.4+(現在の3.6.3まで)でも同じですか?

23
shrimpdrake
  1. 3.4以降でもピップは同じです

    いいえ、ちがいます。単一のpipインストールは、単一のPythonディストリビューション(pip2.7/pip3.4/pip3.5など)を提供します。

  2. Python 3.5以降、pipは既にpythonディストリビューションにバンドルされているため、pipの代わりにpython3.6 -m pipを実行するだけです。

  3. Python 3.6はCentOS 7 Vanillaリポジトリでは使用できません。 CentOSに新しいPythonをインストールする必要がある場合、通常は IUSリポジトリ に頼ります。常に最新のPythonバージョンである 現在のバージョンは3.6.5 です。また、特派員 pip package も提供します。

    $ yum install https://centos7.iuscommunity.org/ius-release.rpm
    $ yum install python36u python36u-devel python36u-pip
    

    残念ながら、IUS Python 3.7のパッケージはまだ提供されていません ですから、CentOS 7でPython 3.7を探している場合は、ソースからビルドするだけが唯一の方法ですオプション。

編集:yumがオプションではない場合

動作するpipをインストールするための最も信頼できる方法であるため、 この回答 で説明されているブートストラップソリューションを選択する必要があります。

27
hoefling

CentOS 7にpython 3.6のpipをインストールするには、実行する必要があります

$ python3.6 -m ensurepip

Centos 7で次のコマンドを実行します

yum install python36
yum install python36-devel
yum install python36-setuptools
easy_install-3.6 pip

pipバージョンを確認するには:

pip3 -V
pip 18.0 from /usr/local/lib/python3.6/site-packages/pip-18.0-py3.6.Egg/pip (python 3.6)
14
Rajiv Sharma

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をインストールすると、python36python36-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が古いことに関する警告を表示したくない場合は、 https://stackoverflow.com/a/46288945を参照してください。/534275 メッセージを黙らせるため。

4
Alan Ivey

何らかの理由で、PIPはpython 3.6のEPELバージョンにバンドルされていません。そのため、このページを見つけるのはかなりの人(私のような人)であると思います。

$ 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)
3
xjsc16x

Pip3がpython2パスにリンクされている場合:

$ pip3 -V

/usr/lib/python2.7/site-packages/pipのpip 8.1.2(python 2.7)

あなたはおそらく得るでしょう:

$ pip3 install --upgrade pip

TypeError:parse()が予期しないキーワード引数 'transport_encoding'を取得しました

次に、hash -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}
2
Noam Manos

これを試して::

Sudo yum update
Sudo yum install -y python36u python36u-libs python36u-devel python36u-pip

私のために完璧に働いています。

1
Sachin Verma