web-dev-qa-db-ja.com

Python 2を使用しているときに「Python 2、これはサポートされなくなりました。これでSetuptoolsを実行しています。」というメッセージを正しく回避する方法は?

新しいシステムにUbuntu 16.04 LTSをインストールしました。
いくつかPython 2を実行する必要があります。

だから私は次のことをしました:

$ pip2
The program 'pip2' is currently not installed. You can install it by typing:
Sudo apt install python-pip
$ Sudo apt-get install python-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libexpat1-dev libpython-all-dev libpython-dev libpython2.7 libpython2.7-dev python-all python-all-dev python-dev python-pip-whl python-setuptools
  python-wheel python2.7-dev
Suggested packages:
  python-setuptools-doc
The following NEW packages will be installed:
  libexpat1-dev libpython-all-dev libpython-dev libpython2.7 libpython2.7-dev python-all python-all-dev python-dev python-pip python-pip-whl
  python-setuptools python-wheel python2.7-dev
0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
Need to get 30.7 MB of archives.
After this operation, 48.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
...

そして、pip2を使い始めました:

$ which pip2
/usr/bin/pip2
$ pip2 install --user jsonmerge
...

そしてそれは失敗しました:

$ pip2 install --user zipp
/home/xenial/.local/lib/python2.7/site-packages/pkg_resources/py2_warn.py:22: UserWarning: Setuptools will stop working on Python 2
************************************************************
You are running Setuptools on Python 2, which is no longer
supported and
>>> SETUPTOOLS WILL STOP WORKING <<<
in a subsequent release (no sooner than 2020-04-20).
Please ensure you are installing
Setuptools using pip 9.x or later or pin to `setuptools<45`
in your environment.
If you have done those things and are still encountering
this message, please comment in
https://github.com/pypa/setuptools/issues/1458
about the steps that led to this unsupported combination.
************************************************************
  sys.version_info < (3,) and warnings.warn(pre + "*" * 60 + msg + "*" * 60)
Collecting zipp
Installing collected packages: zipp
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 209, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 335, in run
    prefix=options.prefix_path,
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 732, in install
    **kwargs
  File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 837, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 1039, in move_wheel_files
    isolated=self.isolated,
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 346, in move_wheel_files
    assert info_dir, "%s .dist-info directory not found" % req
AssertionError: zipp .dist-info directory not found
You are using pip version 8.1.1, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

(上記のPyPiパッケージは例として示されていますが、PyPiの他のパッケージを持つシステムでこの問題が発生しました)。

この問題を正しく解決するにはどうすればよいですか?

3
N0rbert

出力の最後の2行の推奨に従う必要があります。

Pipバージョン8.1.1を使用していますが、バージョン20.0.2を使用できます。
'pip install --upgrade pip'コマンドによるアップグレードを検討する必要があります。

したがって、実行する必要があります

pip2 install --upgrade --user pip

次にログアウトしてログインし、他の推奨事項に従います。

環境でpip 9.x以降を使用するか、setuptools<45に固定するSetuptools。

pip2 install --user "setuptools<45"

この後、pip2- packagesをインストールすると、次のメッセージが表示されます。

廃止:Python 2.7が2020年1月1日に寿命を迎えました。Python as Python 2.7にアップグレードしてくださいはメンテナンスされなくなりました。pipの将来のバージョンでは、Python 2.7のサポートが終了します。Python 2のサポートの詳細については、- https://pip.pypa.io/en/latest/development/release-process/#python-2-support

2
N0rbert