LoginSignup
1
1

More than 3 years have passed since last update.

AWS EC2でPython2とPython3それぞれにpipを入れようとしたらハマった

Posted at

概要

Amazon EC2上でPythonのスクリプトを動かすことになった。新規インスタンスを立ち上げてから、Python2とPython3それぞれの環境を作るにあたって、pipを使おうとしたらつまずいたので、メモとして書き残す。

本文

環境の確認

まずは、EC2に最初から入っているPythonと関連するパッケージを確認してみる。


[********@**************** ~]$ python --version
Python 2.7.18
[********@**************** ~]$ python3 --version
Python 3.7.9

[********@**************** ~]$ yum list installed
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Installed Packages
(中略)
python.x86_64                         2.7.18-1.amzn2.0.3             installed
python2-setuptools.noarch             38.4.0-3.amzn2.0.6             installed
python3.x86_64                        3.7.9-1.amzn2.0.2              @amzn2-core
python3-pip.noarch                    9.0.3-1.amzn2.0.2              @amzn2-core
python3-setuptools.noarch             38.4.0-3.amzn2.0.6             @amzn2-core
...

ターミナルからただ単にpythonを呼ぶと2.7が起動し、python3を呼ぶと3.7が起動する。
python2にはsetuptoolsが入っておりpipは入っていないが、python3側はpipがインストールされている。

Python2.7にpipを入れてみる

Python2.7でもpipを使ってパッケージ管理をしたかったので、setuptoolsからpipをインストールした。


[********@**************** ~]$ sudo easy_install pip
Searching for pip
Reading https://pypi.python.org/simple/pip/
Downloading https://files.pythonhosted.org/packages/b7/2d/ad02de84a4c9fd3b1958dc9fb72764de1aa2605a9d7e943837be6ad82337/pip-21.0.1.tar.gz#sha256=99bbde183ec5ec037318e774b0d8ae0a64352fe53b2c7fd630be1d07e94f41e5
Best match: pip 21.0.1
Processing pip-21.0.1.tar.gz
Writing /tmp/easy_install-RfH930/pip-21.0.1/setup.cfg
Running pip-21.0.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-RfH930/pip-21.0.1/egg-dist-tmp-vsdXKE

  File "build/bdist.linux-x86_64/egg/pip/_internal/configuration.py", line 167
    raise ConfigurationError(f"No such key - {key}")
                                                  ^
SyntaxError: invalid syntax

(中略)

Finished processing dependencies for pip
[********@**************** ~]$ pip
Traceback (most recent call last):
  File "/usr/bin/pip", line 11, in <module>
    load_entry_point('pip==21.0.1', 'console_scripts', 'pip')()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 572, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2755, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2408, in load
    return self.resolve()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2414, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python2.7/site-packages/pip-21.0.1-py2.7.egg/pip/_internal/cli/main.py", line 60
    sys.stderr.write(f"ERROR: {exc}")
                                   ^
SyntaxError: invalid syntax

Syntax Errorが大量に出てしまった。どうやら、最新のpipはPython2.7に対応していないようだ。(最初からPython3系を使うべきという説はあった)

そこで、バージョン指定して古いpip(v19)を入れた。


[********@**************** ~]$ sudo easy_install pip==19
Searching for pip==19
Reading https://pypi.python.org/simple/pip/
Downloading https://files.pythonhosted.org/packages/60/64/73b729587b6b0d13e690a7c3acd2231ee561e8dd28a58ae1b0409a5a2b20/pip-19.0-py2.py3-none-any.whl#sha256=249ab0de4c1cef3dba4cf3f8cca722a07fc447b1692acd9f84e19c646db04c9a
Best match: pip 19.0
Processing pip-19.0-py2.py3-none-any.whl
Installing pip-19.0-py2.py3-none-any.whl to /usr/lib/python2.7/site-packages
Removing pip 21.0.1 from easy-install.pth file
Adding pip 19.0 to easy-install.pth file
Installing pip script to /usr/bin
Installing pip3.7 script to /usr/bin
Installing pip3 script to /usr/bin

Installed /usr/lib/python2.7/site-packages/pip-19.0-py2.7.egg
Processing dependencies for pip==19
Finished processing dependencies for pip==19
[********@**************** ~]$ pip --version
pip 19.0 from /usr/lib/python2.7/site-packages/pip-19.0-py2.7.egg/pip (python 2.7)

これにてPython2.7にpipを入れることには成功した。NumPyのインストールなんかも問題なくできた。

[********@**************** ~]$ sudo pip install numpy
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Collecting numpy
  Downloading https://files.pythonhosted.org/packages/3a/5f/47e578b3ae79e2624e205445ab77a1848acdaa2929a00eeef6b16eaaeb20/numpy-1.16.6-cp27-cp27mu-manylinux1_x86_64.whl (17.0MB)
    100% |????????????????????????????????| 17.0MB 2.0MB/s
Installing collected packages: numpy
Successfully installed numpy-1.16.6

Python3でpipできない??

それではPython3側でもpipを使っていこう…と、その前に、pipのアップグレードをしようとした。
このとき、以下のようなコマンドを入れてしまっていた。


[********@**************** ~]$ sudo pip3 install --upgrade pip
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Collecting pip
  Downloading https://files.pythonhosted.org/packages/27/79/8a850fe3496446ff0d584327ae44e7500daf6764ca1a382d2d02789accf7/pip-20.3.4-py2.py3-none-any.whl (1.5MB)
    100% |????????????????????????????????| 1.5MB 18.2MB/s
Installing collected packages: pip
  Found existing installation: pip 19.0
    Uninstalling pip-19.0:
      Successfully uninstalled pip-19.0
Successfully installed pip-20.3.4

pip3で、pipをアップグレード。
これをしたところ、pip3が行方不明になってしまった。

[********@**************** ~]$ pip3
-bash: /usr/bin/pip3: No such file or directory
[********@**************** ~]$ which pip3
/usr/bin/which: no pip3 in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/********/.local/bin:/home/********/bin)

とりあえず別の方法で

pip3を使えなくなってしまった。

一方、python3 -m pip を使うことはできたので、ひとまずはパッケージのインストールをPython3でもしていくことはできた。

[********@**************** ~]$ sudo python3 -m pip install numpy
WARNING: Running pip install with root privileges is generally not a good idea. Try `__main__.py install --user` instead.
Collecting numpy
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/a9/03/5b216f6a55ffc6bdac3ad3a896c58d4f17d99e18ff82fc68363df7d6a7b3/numpy-1.20.2-cp37-cp37m-manylinux1_x86_64.whl (13.8MB)
    100% |????????????????????????????????| 13.8MB 99kB/s
Installing collected packages: numpy
Successfully installed numpy-1.20.2

原因や解決方法については今後要調査。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1