WORK | GitHubのスクリプトを使いたいんだけどboto3のインストールエラーで前に進めなかったけどなんとかした話
こんばんは、tapunです。
今日は全然ラズパイ関係ないんですけど、調べたことのメモです。
私は開発者じゃないので、全然コードとかわかんないんですけど、そういう人はGitHubにおいてあるスクリプトなどをちょっと使おうと思ってもかなりハードルが高いんですよね~。
いつもググって、誰かのブログ記事に助けてもらっているので、私も自分が困ったところを備忘録として書いておこうと思います。
1. そもそもgitコマンドが入ってない
まずコレです。幸いなことにyumで簡単にインストールできました。
$ yum install git
すると下記のような表示がでて、インストール完了です。
Loaded plugins: priorities, update-motd, upgrade-helper You need to be root to perform this command. [ec2-user@ip-10-0-1-51 ~]$ sudo yum install git Loaded plugins: priorities, update-motd, upgrade-helper amzn-main/latest | 2.1 kB 00:00 amzn-updates/latest | 2.3 kB 00:00 Resolving Dependencies --> Running transaction check ---> Package git.x86_64 0:2.4.3-6.40.amzn1 will be installed --> Processing Dependency: perl-Git = 2.4.3-6.40.amzn1 for package: git-2.4.3-6.40.amzn1.x86_64 --> Processing Dependency: perl(Term::ReadKey) for package: git-2.4.3-6.40.amzn1.x86_64 --> Processing Dependency: perl(Git) for package: git-2.4.3-6.40.amzn1.x86_64 --> Processing Dependency: perl(Error) for package: git-2.4.3-6.40.amzn1.x86_64 --> Running transaction check ---> Package perl-Error.noarch 1:0.17020-2.9.amzn1 will be installed ---> Package perl-Git.noarch 0:2.4.3-6.40.amzn1 will be installed ---> Package perl-TermReadKey.x86_64 0:2.30-20.9.amzn1 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: git x86_64 2.4.3-6.40.amzn1 amzn-main 9.7 M Installing for dependencies: perl-Error noarch 1:0.17020-2.9.amzn1 amzn-main 33 k perl-Git noarch 2.4.3-6.40.amzn1 amzn-main 61 k perl-TermReadKey x86_64 2.30-20.9.amzn1 amzn-main 33 k Transaction Summary ================================================================================ Install 1 Package (+3 Dependent packages) Total download size: 9.8 M Installed size: 24 M Is this ok [y/d/N]: y Downloading packages: (1/4): git-2.4.3-6.40.amzn1.x86_64.rpm | 9.7 MB 00:00 (2/4): perl-Error-0.17020-2.9.amzn1.noarch.rpm | 33 kB 00:00 (3/4): perl-Git-2.4.3-6.40.amzn1.noarch.rpm | 61 kB 00:00 (4/4): perl-TermReadKey-2.30-20.9.amzn1.x86_64.rpm | 33 kB 00:00 -------------------------------------------------------------------------------- Total 22 MB/s | 9.8 MB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : 1:perl-Error-0.17020-2.9.amzn1.noarch 1/4 Installing : perl-TermReadKey-2.30-20.9.amzn1.x86_64 2/4 Installing : git-2.4.3-6.40.amzn1.x86_64 3/4 Installing : perl-Git-2.4.3-6.40.amzn1.noarch 4/4 Verifying : 1:perl-Error-0.17020-2.9.amzn1.noarch 1/4 Verifying : git-2.4.3-6.40.amzn1.x86_64 2/4 Verifying : perl-Git-2.4.3-6.40.amzn1.noarch 3/4 Verifying : perl-TermReadKey-2.30-20.9.amzn1.x86_64 4/4 Installed: git.x86_64 0:2.4.3-6.40.amzn1 Dependency Installed: perl-Error.noarch 1:0.17020-2.9.amzn1 perl-Git.noarch 0:2.4.3-6.40.amzn1 perl-TermReadKey.x86_64 0:2.30-20.9.amzn1 Complete!
このあと、gitからcloneすれば無事にローカルにソースを丸ごとダウンロードできます。
$ git clone git://github.com/XXXX/XXXX
2. pythonのコードを実行しようと思ったらエラーがでた
続いてpythonのライブラリをまとめてインストールする”requirement.txt”をpipでインストールするように、readmeに記載されていました。
$ pip install -r requirements.txt
requirement.txtの中身は、このような感じで、ライブラリのバージョンを指定しています。
netaddr >= 0.7.18 boto3 >= 1.3.1
で、実行します。
# ちなみに、そもそもpipコマンドがない方は「sudo: pip: command not found」みたいなエラーになるので下記のコマンドでインストールしましょう。$ sudo easy_install pip
・・・・・エラーです!
]$ pip install -r requirements.txt You are using pip version 6.1.1, however version 7.1.2 is available. You should consider upgrading via the 'pip install --upgrade pip' command. Collecting netaddr>=0.7.18 (from -r requirements.txt (line 1)) Downloading netaddr-0.7.18-py2.py3-none-any.whl (1.5MB) 100% |????????????????????????????????| 1.5MB 330kB/s Collecting boto3>=1.3.1 (from -r requirements.txt (line 2)) Could not find a version that satisfies the requirement boto3>=1.3.1 (from -r requirements.txt (line 2)) (from versions: 0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.6, 0.0.7, 0.0.8, 0.0.9, 0.0.10, 0.0.11, 0.0.12, 0.0.13, 0.0.14, 0.0.16, 0.0.17, 0.0.18, 0.0.19, 0.0.20, 0.0.21, 0.0.22, 1.0.0, 1.0.1, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.2.0, 1.2.1, 1.2.2) No matching distribution found for boto3>=1.3.1 (from -r requirements.txt (line 2))
よく分からないですが、見た感じboto3のversion 1.3.1 以降のものがダウンロードできていません。
エラー「No matching distribution found for XXX」でググったところ、requirement.txt からはインストールしないという回避策をとっている方がいたので、真似しました。
普通にboto3をインストールして、requirement.txtからはboto3の記載を消して再チャレンジします。
- boto3のインストール
$ sudo pip install boto3 You are using pip version 6.1.1, however version 7.1.2 is available. You should consider upgrading via the 'pip install --upgrade pip' command. Collecting boto3 Downloading boto3-1.2.2-py2.py3-none-any.whl (106kB) 100% |????????????????????????????????| 106kB 4.0MB/s Requirement already satisfied (use --upgrade to upgrade): jmespath<1.0.0,>=0.7.1 in /usr/lib/python2.7/dist-packages (from boto3) Collecting futures==2.2.0 (from boto3) Downloading futures-2.2.0-py2.py3-none-any.whl Requirement already satisfied (use --upgrade to upgrade): botocore<1.4.0,>=1.3.0 in /usr/lib/python2.7/dist-packages (from boto3) Requirement already satisfied (use --upgrade to upgrade): python-dateutil<3.0.0,>=2.1 in /usr/lib/python2.7/dist-packages (from botocore<1.4.0,>=1.3.0->boto3) Requirement already satisfied (use --upgrade to upgrade): docutils>=0.10 in /usr/lib/python2.7/dist-packages (from botocore<1.4.0,>=1.3.0->boto3) Requirement already satisfied (use --upgrade to upgrade): six in /usr/lib/python2.7/dist-packages (from python-dateutil<3.0.0,>=2.1->botocore<1.4.0,>=1.3.0->boto3) Installing collected packages: futures, boto3 Successfully installed boto3-1.2.2 futures-2.2.0
boto3のインストール完了です。
ちなみにboto3って何ですか?
というと、AWS SDK for python です。公式ドキュメントはこちら。
公式ドキュメントのインストールガイドを見つつ、ここでawsの認証設定(IAM)もしておきます。
$ aws configure AWS Access Key ID [None]: "IAMで作成したユーザのアクセスキー" AWS Secret Access Key [None]: "IAMで作成したユーザのシークレットアクセスキー" Default region name [None]: ap-northeast-1(これは東京) Default output format [None]:(私は無記入)
- requirements.txtの改変
vi ./requirements.txt
そして”boto3″の行を消去します。
- requirements.txtによるライブラリ読み込み再チャレンジ
$ pip install -r requirements.txt You are using pip version 6.1.1, however version 7.1.2 is available. You should consider upgrading via the 'pip install --upgrade pip' command. Collecting netaddr>=0.7.18 (from -r requirements.txt (line 1)) Using cached netaddr-0.7.18-py2.py3-none-any.whl Installing collected packages: netaddr Exception: Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 246, in main status = self.run(options, args) File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 352, in run root=options.root_path, File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 693, in install **kwargs File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 817, in install self.move_wheel_files(self.source_dir, root=root) File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 1018, in move_wheel_files isolated=self.isolated, File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 237, in move_wheel_files clobber(source, lib_dir, True) File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 208, in clobber os.makedirs(destdir) File "/usr/lib64/python2.7/os.py", line 157, in makedirs mkdir(name, mode) OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/site-packages/netaddr'
またエラー!!!
しかしよく見ると、一般ユーザで実行している権限の問題っぽいのでsudoで再チャレンジ。
$ sudo pip install -r requirements.txt You are using pip version 6.1.1, however version 7.1.2 is available. You should consider upgrading via the 'pip install --upgrade pip' command. Collecting netaddr>=0.7.18 (from -r requirements.txt (line 1)) Downloading netaddr-0.7.18-py2.py3-none-any.whl (1.5MB) 100% |????????????????????????????????| 1.5MB 329kB/s Installing collected packages: netaddr Successfully installed netaddr-0.7.18
成功しました~!達成感!
これでスクリプトが実行できる環境が整いました!よかった~
まとめ
初心者すぎて恥ずかしいのですがGitコマンドのインストール、pythonライブラリのインストールに失敗するときの対処のメモでした!
ちなみに参考までに、私が今回つかってみたかったGitのスクリプトはこちらです。
# 週末はラズパイ工作のためにAmazonで購入したグッズが届くので、楽しみです♪
コメントを残す