Pythonの勉強でrequestsモジュールをインストール。
モジュールがなくてもできるようだが、このモジュールを入れれば楽にHTTPリクエストを送れるらしい。やってみよう。
ググって下記を参考にしてみた。
https://weblike-curtaincall.ssl-lolipop.jp/blog/?p=1546
# python3 -m easy_install pip
Searching for pip
Best match: pip 7.1.0
Adding pip 7.1.0 to easy-install.pth file
Installing pip3 script to /usr/bin
Installing pip script to /usr/bin
Installing pip3.4 script to /usr/bin
Using /usr/lib/python3.4/site-packages
Processing dependencies for pip
Finished processing dependencies for pip
次に下記を実行した所でうまくいかなかった。
# pip install requests
Traceback (most recent call last):
File "/usr/local/bin/pip", line 7, in <module>
from pip._internal import main
ImportError: No module named _internal
「ImportError: No module named _internal」。「_internal」というモジュールが内というエラーなのか?
更にググると下記がヒット。
https://qastack.jp/ubuntu/1025189/pip-is-not-working-importerror-no-module-named-pip-internal
pipのバージョンの問題なのだろうか。CentOS6環境なので、Python2.6.6環境にPython3.4を入れて共存しているが・・・。試しに下記を投入。
# pip3 install requests
You are using pip version 7.1.0, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/lib/python3.4/site-packages
Requirement already satisfied (use --upgrade to upgrade): urllib3>=1.21.1 in /usr/lib/python3.4/site-packages (from requests)
pipのバージョンも関係しているようだ。/usr/bin/pipをみてみると何かバージョン違いが一杯あるように見える・・・
# /usr/bin/pip
pip pip2 pip2.6 pip3 pip3.4
というわけで下記で挑戦。
# pip3.4 install requests
You are using pip version 7.1.0, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Requirement already satisfie install requests
You are using pip version 7.1.0, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/lib/python3.4/site-packages
Requirement already satisfied (usehttps://qastack.jp/ubuntu/1025189/pip-is-not-working-importerror-no-module-named-pip-internal --upgrade to upgrade): urllib3>=1.21.1 in /usr/lib/python3.4/site-packages (from requests)
何やらpipのバージョンが今は7.1.0だが20.0.2が使えると出ている。そこで指示にしたがって下記を実行。
#pip3.4 install --upgrade pip
You are using pip version 7.1.0, however version 20.0.2 is available.
You should consider upgCollecting pip
Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
100% |████████████████████████████████| 1.4MB 385kB/s
Installing collected packages: pip
Found existing installation: pip 7.1.0
Uninstalling pip-7.1.0:
Successfully uninstalled pip-7.1.0
Successfully installed pip-20.0.2he 'pip install --upgrade pip' command.
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/lib/rading via the 'pip install --upgrade pip' command.
Collecting pip
Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
100% |████████████████████████████████| 1.4MB 385kB/s
Installing collected packages: pip
Found existing installation: pip 7.1.0
Uninstalling pip-7.1.0:
Successfully uninstalled pip-7.1.0
Successfully installed pip-20.0.2
「Successfully installed pip-20.0.2」と表示されている。どうやらうまくいったようだ。
そこで本命のrequestsモジュールをインストール。
# /usr/bin/pip3.4 intall requests
Traceback (most recent call last):
File "/usr/bin/pip3.4", line 7, in <module>
from pip._internal.cli.main import main
File "/usr/lib/python3.4/site-packages/pip/_internal/cli/main.py", line 10, in <module>
from pip._internal.cli.autocompletion import autocomplete
File "/usr/lib/python3.4/site-packages/pip/_internal/cli/autocompletion.py", line 9, in <module>
from pip._internal.cli.main_parser import create_main_parser
File "/usr/lib/python3.4/site-packages/pip/_internal/cli/main_parser.py", line 7, in <module>
from pip._internal.cli import cmdoptions
File "/usr/lib/python3.4/site-packages/pip/_internal/cli/cmdoptions.py", line 28, in <module>
from pip._internal.models.target_python import TargetPython
File "/usr/lib/python3.4/site-packages/pip/_internal/models/target_python.py", line 4, in <module>
from pip._internal.utils.misc import normalize_version_info
File "/usr/lib/python3.4/site-packages/pip/_internal/utils/misc.py", line 20, in <module>
from pip._vendor import pkg_resources
File "/usr/lib/python3.4/site-packages/pip/_vendor/pkg_resources/__init__.py", line 92, in <module>
raise RuntimeError("Python 3.5 or later is required")
RuntimeError: Python 3.5 or later is required# /usr/bin/pip3.4 intall requests
Traceback (most recent call last):
File "/usr/bin/pip3.4", line 7, in <module>
from pip._internal.cli.main import main
File "/usr/lib/python3.4/site-packages/pip/_internal/cli/main.py", line 10, in <module>
from pip._internal.cli.autocompletion import autocomplete
File "/usr/lib/python3.4/site-packages/pip/_internal/cli/autocompletion.py", line 9, in <module>
from pip._internal.cli.main_parser import create_main_parser
File "/usr/lib/python3.4/site-packages/pip/_internal/cli/main_parser.py", line 7, in <module>
from pip._internal.cli import cmdoptions
File "/usr/lib/python3.4/site-packages/pip/_internal/cli/cmdoptions.py", line 28, in <module>
from pip._internal.models.target_python import TargetPython
File "/usr/lib/python3.4/site-packages/pip/_internal/models/target_python.py", line 4, in <module>
from pip._internal.utils.misc import normalize_version_info
File "/usr/lib/python3.4/site-packages/pip/_internal/utils/misc.py", line 20, in <module>
from pip._vendor import pkg_resources
File "/usr/lib/python3.4/site-packages/pip/_vendor/pkg_resources/__init__.py", line 92, in <module>
raise RuntimeError("Python 3.5 or later is required")
RuntimeError: Python 3.5 or later is required
python3.5以降が必要とか言われる・・・(T_T)
こちらの環境は3.4台なのに・・・先ほどのpipをバージョンアップした影響なのだろうか。というわけでまだ問題は解消せず・・・そこで先日の記事にしたがって下記を投入してPython3.5にしてしまうと3.5にできたようだ。
# yum install -y python35*
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
* centos-sclo-rh: ty1.mirror.newmediaexpress.com
* centos-sclo-sclo: ty1.mirror.newmediaexpress.com
* epel: nrt.edge.kernel.org
* livna: wftp.tu-chemnitz.de
* nux-dextop: mirror.li.nux.ro
https://yum.dockerproject.org/repo/main/centos/6/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
他のミラーを試します。
To address this issue please refer to the below wiki article
https://wiki.centos.org/yum-errors
If above article doesn't help to resolve this issue please use https://bugs.centos.org/.
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package python35u.x86_64 0:3.5.6-1.ius.el6 will be インストール
---> Package python35u-debug.x86_64 0:3.5.6-1.ius.el6 will be インストール
---> Package python35u-devel.x86_64 0:3.5.6-1.ius.el6 will be インストール
---> Package python35u-hiredis.x86_64 0:0.2.0-1.ius.el6 will be インストール
---> Package python35u-libs.x86_64 0:3.5.6-1.ius.el6 will be インストール
---> Package python35u-lxml.x86_64 0:4.2.0-1.ius.el6 will be インストール
---> Package python35u-mod_wsgi.x86_64 0:4.6.2-1.ius.el6 will be インストール
---> Package python35u-pip.noarch 0:9.0.1-1.ius.el6 will be インストール
---> Package python35u-postgresql.x86_64 0:1.2.1-1.ius.el6 will be インストール
---> Package python35u-redis.noarch 0:2.10.6-1.ius.el6 will be インストール
---> Package python35u-setuptools.noarch 0:39.0.1-1.ius.el6 will be インストール
---> Package python35u-test.x86_64 0:3.5.6-1.ius.el6 will be インストール
---> Package python35u-tkinter.x86_64 0:3.5.6-1.ius.el6 will be インストール
---> Package python35u-tools.x86_64 0:3.5.6-1.ius.el6 will be インストール
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
パッケージ アーキテクチャ
バージョン リポジトリー
容量
================================================================================
インストールしています:
python35u x86_64 3.5.6-1.ius.el6 ius 51 k
python35u-debug x86_64 3.5.6-1.ius.el6 ius 2.4 M
python35u-devel x86_64 3.5.6-1.ius.el6 ius 191 k
python35u-hiredis x86_64 0.2.0-1.ius.el6 ius 20 k
python35u-libs x86_64 3.5.6-1.ius.el6 ius 9.3 M
python35u-lxml x86_64 4.2.0-1.ius.el6 ius 1.3 M
python35u-mod_wsgi x86_64 4.6.2-1.ius.el6 ius 1.8 M
python35u-pip noarch 9.0.1-1.ius.el6 ius 1.8 M
python35u-postgresql x86_64 1.2.1-1.ius.el6 ius 474 k
python35u-redis noarch 2.10.6-1.ius.el6 ius 114 k
python35u-setuptools noarch 39.0.1-1.ius.el6 ius 781 k
python35u-test x86_64 3.5.6-1.ius.el6 ius 7.1 M
python35u-tkinter x86_64 3.5.6-1.ius.el6 ius 358 k
python35u-tools x86_64 3.5.6-1.ius.el6 ius 463 k
トランザクションの要約
================================================================================
インストール 14 パッケージ
総ダウンロード容量: 26 M
インストール済み容量: 146 M
パッケージをダウンロードしています:
(1/14): python35u-3.5.6-1.ius.el6.x86_64.rpm | 51 kB 00:00
(2/14): python35u-debug-3.5.6-1.ius.el6.x86_64.rpm | 2.4 MB 00:01
(3/14): python35u-devel-3.5.6-1.ius.el6.x86_64.rpm | 191 kB 00:00
(4/14): python35u-hiredis-0.2.0-1.ius.el6.x86_64.rpm | 20 kB 00:00
(5/14): python35u-libs-3.5.6-1.ius.el6.x86_64.rpm | 9.3 MB 00:02
(6/14): python35u-lxml-4.2.0-1.ius.el6.x86_64.rpm | 1.3 MB 00:01
(7/14): python35u-mod_wsgi-4.6.2-1.ius.el6.x86_64.rpm | 1.8 MB 00:01
(8/14): python35u-pip-9.0.1-1.ius.el6.noarch.rpm | 1.8 MB 00:00
(9/14): python35u-postgresql-1.2.1-1.ius.el6.x86_64.rpm | 474 kB 00:00
(10/14): python35u-redis-2.10.6-1.ius.el6.noarch.rpm | 114 kB 00:00
(11/14): python35u-setuptools-39.0.1-1.ius.el6.noarch.rp | 781 kB 00:00
(12/14): python35u-test-3.5.6-1.ius.el6.x86_64.rpm | 7.1 MB 00:04
(13/14): python35u-tkinter-3.5.6-1.ius.el6.x86_64.rpm | 358 kB 00:00
(14/14): python35u-tools-3.5.6-1.ius.el6.x86_64.rpm | 463 kB 00:00
--------------------------------------------------------------------------------
合計 1.9 MB/s | 26 MB 00:14
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
インストールしています : python35u-3.5.6-1.ius.el6.x86_64 1/14
インストールしています : python35u-libs-3.5.6-1.ius.el6.x86_64 2/14
インストールしています : python35u-tkinter-3.5.6-1.ius.el6.x86_64 3/14
インストールしています : python35u-tools-3.5.6-1.ius.el6.x86_64 4/14
インストールしています : python35u-setuptools-39.0.1-1.ius.el6.noarc 5/14
インストールしています : python35u-test-3.5.6-1.ius.el6.x86_64 6/14
インストールしています : python35u-devel-3.5.6-1.ius.el6.x86_64 7/14
インストールしています : python35u-debug-3.5.6-1.ius.el6.x86_64 8/14
インストールしています : python35u-pip-9.0.1-1.ius.el6.noarch 9/14
インストールしています : python35u-mod_wsgi-4.6.2-1.ius.el6.x86_64 10/14
インストールしています : python35u-postgresql-1.2.1-1.ius.el6.x86_64 11/14
インストールしています : python35u-hiredis-0.2.0-1.ius.el6.x86_64 12/14
インストールしています : python35u-lxml-4.2.0-1.ius.el6.x86_64 13/14
インストールしています : python35u-redis-2.10.6-1.ius.el6.noarch 14/14
Verifying : python35u-devel-3.5.6-1.ius.el6.x86_64 1/14
Verifying : python35u-tools-3.5.6-1.ius.el6.x86_64 2/14
Verifying : python35u-postgresql-1.2.1-1.ius.el6.x86_64 3/14
Verifying : python35u-pip-9.0.1-1.ius.el6.noarch 4/14
Verifying : python35u-hiredis-0.2.0-1.ius.el6.x86_64 5/14
Verifying : python35u-libs-3.5.6-1.ius.el6.x86_64 6/14
Verifying : python35u-test-3.5.6-1.ius.el6.x86_64 7/14
Verifying : python35u-setuptools-39.0.1-1.ius.el6.noarc 8/14
Verifying : python35u-debug-3.5.6-1.ius.el6.x86_64 9/14
Verifying : python35u-tkinter-3.5.6-1.ius.el6.x86_64 10/14
Verifying : python35u-3.5.6-1.ius.el6.x86_64 11/14
Verifying : python35u-redis-2.10.6-1.ius.el6.noarch 12/14
Verifying : python35u-mod_wsgi-4.6.2-1.ius.el6.x86_64 13/14
Verifying : python35u-lxml-4.2.0-1.ius.el6.x86_64 14/14
インストール:
python35u.x86_64 0:3.5.6-1.ius.el6
python35u-debug.x86_64 0:3.5.6-1.ius.el6 #pip3.4 install --upgrade pip
You are using pip version 7.1.0, however version 20.0.2 is available.
You should consider upgCollecting pip
Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
100% |████████████████████████████████| 1.4MB 385kB/s
Installing collected packages: pip
Found existing installation: pip 7.1.0
Uninstalling pip-7.1.0:#pip3.4 install --upgrade pip
You are using pip version 7.1.0, however version 20.0.2 is available.
You should consider upgCollecting pip
Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
100% |████████████████████████████████| 1.4MB 385kB/s
Installing collected packages: pip
Found existing installation: pip 7.1.0
Uninstalling pip-7.1.0:
Successfully uninstalled pip-7.1.0
Successfully installed pip-20.0.2he 'pip install --upgrade pip' command.
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/lib/rading via the 'pip install --upgrade pip' command.
Collecting pip
Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
100% |████████████████████████████████| 1.4MB 385kB/s
Installing collected packages: pip
Found existing installation: pip 7.1.0
Uninstalling pip-7.1.0:
Successfully uninstalled pip-7.1.0
Successfully installed pip-20.0.2
Successfully uninstalled pip-7.1.0
Successfully installed pip-20.0.2he 'pip install --upgrade pip' command.
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/lib/rading via the 'pip install --upgrade pip' command.
Collecting pip
Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
100% |████████████████████████████████| 1.4MB 385kB/s
Installing collected packages: pip
Found existing installation: pip 7.1.0
Uninstalling pip-7.1.0:
Successfully uninstalled pip-7.1.0
Successfully installed pip-20.0.2
python35u-devel.x86_64 0:3.5.6-1.ius.el6
python35u-hiredis.x86_64 0:0.2.0-1.ius.el6
python35u-libs.x86_64 0:3.5.6-1.ius.el6
python35u-lxml.x86_64 0:4.2.0-1.ius.el6
python35u-mod_wsgi.x86_64 0:4.6.2-1.ius.el6
python35u-pip.noarch 0:9.0.1-1.ius.el6
python35u-postgresql.x86_64 0:1.2.1-1.ius.el6
python35u-redis.noarch 0:2.10.6-1.ius.el6
python35u-setuptools.noarch 0:39.0.1-1.ius.el6
python35u-test.x86_64 0:3.5.6-1.ius.el6
python35u-tkinter.x86_64 0:3.5.6-1.ius.el6
python35u-tools.x86_64 0:3.5.6-1.ius.el6
完了しました!
今渡こそ!
# pip3.5 install requests
Collecting requests
Downloading https://files.pythonhosted.org/packages/1a/70/1935c770cb3be6e3a8b78ced23d7e0f3b187f5cbfab4749523ed65d7c9b1/requests-2.23.0-py2.py3-none-any.whl (58kB)
100% |████████████████████████████████| 61kB 6.0MB/s
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests)
Downloading https://files.pythonhosted.org/packages/e8/74/6e4f91745020f967d09332bb2b8b9b10090957334692eb88ea4afe91b77f/urllib3-1.25.8-py2.py3-none-any.whl (125kB)
100% |████████████████████████████████| 133kB 5.1MB/s
Collecting chardet<4,>=3.0.2 (from requests)
Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
100% |████████████████████████████████| 143kB 5.4MB/s
Collecting idna<3,>=2.5 (from requests)
Downloading https://files.pythonhosted.org/packages/89/e3/afebe61c546d18fb1709a61bee788254b40e736cff7271c7de5de2dc4128/idna-2.9-py2.py3-none-any.whl (58kB)
100% |████████████████████████████████| 61kB 8.3MB/s
Collecting certifi>=2017.4.17 (from requests)
Downloading https://files.pythonhosted.org/packages/b9/63/df50cac98ea0d5b006c55a399c3bf1db9da7b5a24de7890bc9cfd5dd9e99/certifi-2019.11.28-py2.py3-none-any.whl (156kB)
100% |████████████████████████████████| 163kB 3.0MB/s
Installing collected packages: urllib3, chardet, idna, certifi, requests
Successfully installed certifi-2019.11.28 chardet-3.0.4 idna-2.9 requests-2.23.0 urllib3-1.25.8
You are using pip version 9.0.1, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
またpipのバージョン違いなのか?下記を投入。
# pip3.5 install --upgrade pip
Collecting pip
Using cached https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-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
Successfully installed pip-20.0.2
pipのバージョンは問題ないようだ。それでは、いよいよ・・・
#pip3.5 install requests
Requirement already satisfied: requests in /usr/lib/python3.5/site-packages (2.23.0)
Requirement already satisfied: certifi>=2017.4.17 in /usr/lib/python3.5/site-packages (from requests) (2019.11.28)
Requirement already satisfied: idna<3,>=2.5 in /usr/lib/python3.5/site-packages (from requests) (2.9)
Requirement already satisfied: chardet<4,>=3.0.2 in /usr/lib/python3.5/site-packages (from requests) (3.0.4)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/lib/python3.5/site-packages (from requests) (1.25.8)
おっ、エラーが出ない。うまくいったのか?
確認してみよう。まずはtest.pyを作成。
import requests
response = requests.get('http://www.mlit.go.jp')
print(response.status_code) # HTTPのステータスコード取得
print(response.text) # レスポンスのHTMLを文字列で取得
下記を実行。うまく表示されました(^^)v
# /usr/bin/python3.5 test.py