web-dev-qa-db-ja.com

Ubuntu16.04でpipを最新バージョンにアップグレードします

次のコマンドを使用して、pipを最新バージョン(古いバージョン9.0.1および最新バージョン19.3.1。)にアップグレードしようとしています。

pip install --upgrade pip

Sudo apt-get upgrade pip

ただし、次のエラーではアップグレードされません。

**$ pip install --upgrade pip**

Collecting pip
  Using cached https://files.pythonhosted.org/packages/00/b6/9cfa56b4081ad13874b0c6f96af8ce16cfbc1cb06bedf8e9164ce5551ec1/pip-19.3.1-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 9.0.1
    Uninstalling pip-9.0.1:
      Successfully uninstalled pip-9.0.1
  Rolling back uninstall of pip

Exception:
Traceback (most recent call last):

  File "/home/larz/.local/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)

  File "/home/larz/.local/lib/python2.7/site-packages/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,

  File "/home/larz/.local/lib/python2.7/site-packages/pip/req/req_set.py", line 784, in install
    **kwargs

  File "/home/larz/.local/lib/python2.7/site-packages/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)

  File "/home/larz/.local/lib/python2.7/site-packages/pip/req/req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,

  File "/home/larz/.local/lib/python2.7/site-packages/pip/wheel.py", line 345, in move_wheel_files
    clobber(source, lib_dir, True)

  File "/home/larz/.local/lib/python2.7/site-packages/pip/wheel.py", line 316, in clobber
    ensure_dir(destdir)

  File "/home/larz/.local/lib/python2.7/site-packages/pip/utils/__init__.py", line 83, in ensure_dir
    os.makedirs(path)

  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)

OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/pip'

ケラをインストールする必要があります。インストール中に、pipをアップグレードするように求められました。 pipをアップグレードしようとすると、上記のエラーが発生します

ピップを更新するためにapt-getを使用しないでください。 apt-getから入手できるpipの最新バージョンは古いものです。

クイックソリューション:

@kenorbがコメントで言っているように、次のようにpippipを使用してSudoをアップグレードできます。

Sudo pip install --upgrade pip

適切なソリューション:

pyenvを使用します-@ slhckによる回答を参照してください

1
curusarn

これが私の一番のヒントです:Sudopipと一緒に使用しないでください。あなたはそれを必要としません。

代わりに、ユーザーレベルのPythonディストリビューションをpyenv経由でインストールして使用してください。そうすることで、システムレベルのフレームワークをいじくりまわすリスクを回避できます(したがって、依存関係の削除で問題が発生します)等。)。

Pyenvをインストールします

あなたがしなければならないのは:

  • pyenvインストーラー を実行します
  • 指示に従ってください
  • 必要なPythonバージョン
  • 特定のディレクトリに使用する、またはグローバルに使用するPythonバージョンを選択します

たとえば、3.7をインストールするには、使用可能なバージョンを確認します。

pyenv install -l | grep 3.7

次に実行します:

pyenv install 3.7.4

新しいバージョンに切り替えます

これで、Pythonバージョンを選択できます:

pyenv global 3.7.4

これにより、pythonが3.7.4を指すように切り替わります。 「古い」システムPythonが必要な場合は、次のコマンドを実行します。

pyenv global system

どのPythonバージョンが利用可能かを確認するには、pyenv versionsを実行します。

アップグレードpip

Pyenvバージョンに切り替えると、pipなしでSudoを実行し、システムPythonに干渉することなくパッケージを簡単にインストール/アップグレードできます。

pyenv global 3.7.4
pip install --upgrade pip
pip install numpy
1
slhck