ラベル python の投稿を表示しています。 すべての投稿を表示
ラベル python の投稿を表示しています。 すべての投稿を表示

2019年6月17日月曜日

pythonの実行環境をDockerで構築してスクリプトを実行する方法

pythonの環境をローカルに構築するのに、pythonのバージョンを指定して入れるのもな
と思って、dockerでやってみることにしました。

まずは、コンテナの準備をDockerfileで進めていきます。

今回は、pythonのイメージを使いたいので、ドキュメント見ながら書いて行きます。

$ vim Dockerfile
FROM python:3

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "python", "./script.py" ]

このDockerファイルを実行するとコンテナにコピーした「script.py」というスクリプトが実行されます。

次は、実行するスクリプトを作ります

$ vim script.py

if __name__ == '__main__':
    print('hello')

実行すると「hello」が表示されるスクリプトです。 Dockerfileでビルドしてみます。

$ docker build  . -t script --no-cache
Sending build context to Docker daemon  63.49kB
Step 1/5 : FROM python:3
...
Step 2/5 : WORKDIR /usr/src/app
...
Step 3/5 : COPY requirements.txt ./
...
Step 4/5 : RUN pip install --no-cache-dir -r requirements.txt
...
Step 5/5 : CMD [ "python", "./script.py" ]
...
Successfully built 36d309824e5f
Successfully tagged script:latest

docker buildの-tオプションでscriptを指定したので、実行するときはこのタグを指定して実行します。

$ docker run --rm -it script
hello

無事に「hello」が表示されたので、実行できたことを確認できました。 思ったより簡単だったけど、docker buildでファイルをコピーしているので、毎回docker buildしないといけないのはめんどくさいなと思ったりしました。

2018年1月25日木曜日

EC2でPython 3.6を使うときにpip-3.6をpip3コマンドで実行できるようにする方法

EC2のAmazon Linuxで、pip3コマンドを使えるようにするためには、まずyumでインストールをします。

$ sudo yum install python36-pip

正常に終了。念のため、このままだとコマンドが実行できないことを確認してみます。

$ pip3 -V
-bash: pip3: command not found

予定通り、そんなコマンドないパターン。

いろいろなサイトをざっくりしか読んでいないと、おかしいなと思ってついやってしまう再インストール。

$ sudo yum install python36-pip
Loaded plugins: priorities, update-motd, upgrade-helper
24 packages excluded due to repository priority protections
Package python36-pip-9.0.1-1.24.amzn1.noarch already installed and latest version
Nothing to do

上記のようにもう入っていると怒られます。というのがインフラを苦手とする自分の様な人にありがちなことだと思います。失礼か。

では、ここからは本題のpip3コマンドにする方法です。まずは、whichコマンドでpipがある場所を確認。

$ which pip
/usr/bin/pip

これにより、pipは「/usr/bin/pip/」にあることがわかったので、同じ場所に3.6もあるかgrepして確認します。

$ ls -l /usr/bin/ | grep pip
-rwxr-xr-x   1 root root       2804 Sep 10  2014 lesspipe.sh
lrwxrwxrwx   1 root root         21 Jan 15 11:42 pip -> /etc/alternatives/pip
-rwxr-xr-x   1 root root        290 Aug 11  2016 pip-2.7
-rwxr-xr-x   1 root root        370 Aug 26 03:59 pip-3.6

インストールしたpip-3.6がちゃんと入っていることを確認したら、pip3コマンドとして使えるようにシンボリックリンクを貼ってあげると、無事に使えるようになります!

$ sudo ln -s /usr/bin/pip-3.6 /usr/bin/pip3
$ pip3 -V
pip 9.0.1 from /usr/lib/python3.6/dist-packages (python 3.6)

めでたし、めでたし!

2014年10月5日日曜日

静的サイトジェネレーターのhydeをインストール

静的サイトジェネレーターを使ってみたいなと思って調べているときに、どうせ使うならPythonのやつが良いなと思ったので、Pythonを使っているもので調べた結果、hydeを見つけました。

hydeは、Rubyのjekyllを意識した静的サイトジェネレーターということで、公式サイトにもjekyllの文字が出てきます!!

詳しくは下記参照でお願いします!

http://hyde.github.io/

hydeを使ってみるためにpythonの環境を構築したので、実際にインストールしてみました!

インストールは下記のコマンドで行います。

D:\www\home>pip install hyde
Downloading/unpacking hyde
Downloading/unpacking fswrap==0.1.2 (from hyde)
Downloading/unpacking commando==0.3.4 (from hyde)
Downloading/unpacking PyYAML==3.10 (from hyde)
Downloading/unpacking Markdown==2.3.1 (from hyde)
Downloading/unpacking MarkupSafe==0.18 (from hyde)
Downloading/unpacking Pygments==1.6 (from hyde)
Downloading/unpacking typogrify==2.0.0 (from hyde)
Downloading/unpacking smartypants<1.8 (from hyde)
Downloading/unpacking Jinja2==2.7.1 (from hyde)

いろいろと省略しますが、上記のパッケージを一緒にインストールしていました!

インストールが完了したら、createコマンドでhydeの初期ファイルを作成します。このとき-sオプションをつけるとファイル生成パスを指定することができます。

D:\www>hyde -s ./home/hyde create
10:46:42 hyde Creating site at [D:\www\home\hyde] with layout [C:\Python27\lib\site-packages\hyde\layouts\basic]
10:46:43 hyde Site creation complete

無事にサイトが作成できたので、作成したフォルダに移動してgenコマンドで初期状態のサイトを作成してみます。

D:\www>cd home/hyde
D:\www\home\hyde>hyde gen
10:47:35 hyde.engine Reading site configuration from [D:\www\home\hyde\site.yaml]
10:47:35 hyde.engine Reading site contents
10:47:35 hyde.engine Generating site at [d:\www\home\hyde]
10:47:36 hyde.engine Configuring the template environment
10:47:36 hyde.engine Generating site to [d:\www\home\hyde\deploy]
10:47:38 hyde Generation complete.

genコマンドで-dオプションを使わない場合、deployフォルダが作成されてその中にファイルが入ります。

D:\www\home\hyde\deploy\about.html D:\www\home\hyde\deploy\apple-touch-icon.png D:\www\home\hyde\deploy\favicon.ico D:\www\home\hyde\deploy\index.html D:\www\home\hyde\deploy\blog\angry-post.html D:\www\home\hyde\deploy\blog\atom.xml D:\www\home\hyde\deploy\blog\excerpts.xml D:\www\home\hyde\deploy\blog\happy-post.html D:\www\home\hyde\deploy\blog\index.html D:\www\home\hyde\deploy\blog\sad-post.html D:\www\home\hyde\deploy\blog\tags\angry.html D:\www\home\hyde\deploy\blog\tags\happy.html D:\www\home\hyde\deploy\blog\tags\sad.html D:\www\home\hyde\deploy\blog\tags\thoughts.html D:\www\home\hyde\deploy\media\css\site.css D:\www\home\hyde\deploy\media\css\syntax.css D:\www\home\hyde\deploy\media\images\airport.png D:\www\home\hyde\deploy\media\images\dark.png D:\www\home\hyde\deploy\media\js\libs\dd_belatedpng.js D:\www\home\hyde\deploy\media\js\libs\jquery-1.5.1.min.js D:\www\home\hyde\deploy\media\js\libs\modernizr-1.7.min.js D:\www\home\hyde\deploy\portfolio\index.html

ファイルが作成できていることを確認できたので、ブラウザからアクセスすると下記のようなページが表示されました!


ひとまず、使えることが確認できたので、今後はテンプレートの編集などをやってみようと思います。

2014年8月31日日曜日

setuptools5.7をインストール

前回、Windows7にPythonをインストールできたので、今回はsetuptoolsをインストールしてeasy_installを使えるようにしたいと思います。

ということで、ダウンロードページからファイルをダウンロードし、適当なところに解凍します。

解凍までできたら、コマンドプロンプトで解凍したフォルダまで移動し、下記のコマンドを実行すればインストール完了です。

>python ez_setup.py


前回のインストーラー同様、簡単に入るなと思っていたら・・・

まさかのエラーが発生しました。。


エラー内容を見てみると、参照したURLが404エラーだったようです。

エラーの上に下記のURLが貼ってあったので、直アクセスしてみるとNot Foundが表示され、本当にページがなかったです。。

https://pypi.python.org/packages/source/s/setuptools/setuptools-5.8.zip

本家からダウンロードしたのに…
と思いながらURLをみていたら気が付きました!

setuptools 5.7なのにURLが5.8になっている。。

ダメ元で5.7に変え直アクセスするとファイルのダウンロードが始まりました。

https://pypi.python.org/packages/source/s/setuptools/setuptools-5.7.zip

単にURLが間違っているんだなということが解ったので、ez_install.pyを開いて「5.8」でファイル内検索をしたところ、39、40行目に下記の記述を見つけました。

DEFAULT_VERSION = "5.8"
DEFAULT_URL = "https://pypi.python.org/packages/source/s/setuptools/"


5.8はここにしか記載されていないし、変数名的にもこれだなということで、5.7に変更して保存します。

保存後、もう一度コマンドを実行したところ無事にインストールできました!

エラーが出ると焦りますが、簡単に修復できてよかったです。。

easy_installが使えるようになったので、pipをインストールします。

>easy_install pip

※ ここでeasy_installのエラーがでる場合は「C:\Python27\Scripts」にパスが正しく通っていない可能性があります

pipは問題なくインストールできたので、環境構築はまた一歩進みました。

2014年8月29日金曜日

Windows7にPython 2.7.8をインストールする

今までネットブックにインストールしたUbuntuでPythonの勉強をしていたのですが、メインのPCでもPythonを使いたいことができたのでインストールしてみることにしました。

 まずは、本家のダウンロードページからインストーラーをダウンロードします。



赤い枠の部分をクリックするとダウンロードが始まるので、ダウンロードが終わったらインストーラーを起動します。




Nextで進んでいき、カスタマイズの画面で×がついているところを変更すると、環境変数に自動でパスが通るようになります。

その後もNextで進んでいくと数分でインストールが完了します。



インストールが終了したら、easy_installなどを使えるようにするために、環境変数に下記のパスを追加します。

C:¥Python27¥Scripts

パスの追加もできたところで、コマンドプロンプトを開き、pythonコマンドが使えるか確認します。

C:\Users\User>python
Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>


pythonを実行できるモードに切り替わればインストール成功です!

インストーラーを使うと簡単にインストールできるので良いですねw

次回は、easy_installとpipをインストールしてみようと思います。

macOSでminikubeをインストールしようとしたら書き込みエラーになった

ローカル環境でKubernetesを使えるようにしようと環境構築中にエラーが 下記が今回のエラーで書き込みできない感じのメッセージが出ています。  $ brew install minikube Updating Homebrew... Error: The following ...