次のコマンドを使用して、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がコメントで言っているように、次のようにpip
とpip
を使用してSudo
をアップグレードできます。
Sudo pip install --upgrade pip
適切なソリューション:
pyenv
を使用します-@ slhckによる回答を参照してください
これが私の一番のヒントです:Sudo
をpip
と一緒に使用しないでください。あなたはそれを必要としません。
代わりに、ユーザーレベルのPythonディストリビューションをpyenv
経由でインストールして使用してください。そうすることで、システムレベルのフレームワークをいじくりまわすリスクを回避できます(したがって、依存関係の削除で問題が発生します)等。)。
あなたがしなければならないのは:
pyenv
インストーラー を実行しますたとえば、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