このエントリーをはてなブックマークに追加
facebooktwittergoogle_plusredditpinterestlinkedinmail

こんばんは、tapunです。

今日は全然ラズパイ関係ないんですけど、調べたことのメモです。

私は開発者じゃないので、全然コードとかわかんないんですけど、そういう人はGitHubにおいてあるスクリプトなどをちょっと使おうと思ってもかなりハードルが高いんですよね~。

stress

いつもググって、誰かのブログ記事に助けてもらっているので、私も自分が困ったところを備忘録として書いておこうと思います。


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'

 またエラー!!! :roll: 

しかしよく見ると、一般ユーザで実行している権限の問題っぽいので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で購入したグッズが届くので、楽しみです♪