## 発生するエラー
ansible-playbookを実行すると、下記のエラーが出る。
```language-bash
$ ansible-playbook playbook.yml
/usr/local/Cellar/ansible/2.9.6_1/libexec/lib/python3.8/site-packages/netaddr/strategy/__init__.py:189: Synta...
pythonの記事一覧
## 発生したエラー
手元のmacOSからCentOS8.0をセットアップしようとansibleコマンドを実行しようとしたところ、下記のエラーが発生した。
```language-bash
$ ansible server-centos8 -m ping
192.168.33.10 | FAILED! => {
"changed": fals...
dockerでAlpine Linuxベースで、python3.6+mecabの環境をしたのですが、python-mecab3のpipパッケージをインストール時に、エラー`unable to execute 'swig'`が発生しました。
```language-bash
$ docker build .
...
unable to execute 'swig': No ...
dockerでpython:3.6-alpineイメージを利用してへuwsgiのインストールしようとしたところ、エラー"Exception: you need a C compiler to build uWSGI"が発生しました。
```language-bash
$pip install uwsgi
...
Failed to build uwsgi
Running ...
python3.xの環境で、wikipediaのページを読み込み、htmlの内容を文字化けせずに画面に出力させる方法です。
今回はcchardetという文字コードの自動認識を行えるpipパッケージを使ってみます。
## パッケージのインストール
```language-bash
php3 ...
[python]配列をn件ごとの塊に分ける(チャンク化)
2019年2月15日
| カテゴリ: python
pythonで配列に入ったデータをn件ごとの塊に分ける方法です。
パッケージのインストール
```language-bash
pip install more-itertools
```
スクリプト
```language-python
from more_itertools import chunked
ary = [1,2,3,4,5,6,7,8,9]
...
AWS Lambdaのデプロイメント管理ツールであるapexで、環境変数を利用する方法を説明します
## project.jsonの記述
project.jsonでは、以下のように"environment"ノードを作ることができ、この中にハッシュの形でkey-valueを記載することで環境変数を...
## インストール
apexは、下記のコマンドでインストールすることができます。macOSの場合インストール先はデフォルトで/usr/local/bin/apexになります。
```language-bash
$ curl https://raw.githubusercontent.com/apex/apex/master/install.sh | sh
...

ロリポップのレンタルサーバでpythonスクリプトをcron実行できないときに確認すること
2018年7月21日
| カテゴリ: python
ロリポップのレンタルサーバでpythonスクリプトを実行しようとして、sshから直接コマンドを実行すると動くのにcronから自動実行するとうまく動かないことがありました。
`which python`コマンドをそれぞれの環境で実行したところ、以下のように使用して...
cronのスクリプトからpythonのスクリプトを実行しようとしたところ、print()による日本語文字列の出力処理で、下記のエラーが発生した
```language-bash
UnicodeEncodeError: 'ascii' codec can't encode characters in position x-x: ordinal not in ra...

[python]numpyのnp.array()入門
2018年7月20日
| カテゴリ: python
## プログラム
```language-python
import numpy as np
def showNpArray(ary):
x = np.array(ary)
print(x) # オブジェクトのダンプ
print(x.shape) # 各次元のサイズ
print(x.ndim) # 何次元の配列か
showN...

[python3]requests.get()の結果を文字列として取得する
2018年7月16日
| カテゴリ: python
|
pythonでは、requestパッケージを利用することでスクリプトからhttpのリクエストを送信することができます。
requests.get()で実行したたHTTPリクエストに対する応答テキストをstringの文字列として取得したい場合は、戻り値に対してcontent.decode()を...

[python3]os.chmod(dirname, 0755)の実行で、invalid tokenエラーが発生する時
2018年7月16日
| カテゴリ: python
python3の環境で、ディレクトリの権限を変更しようとしてos.chmod()を実行すると、invalid tokenエラーが発生することがあります。
## プログラム
ディレクトリを作成するだけのプログラムです
```language-python
import os
dirname = 'path/t...

pythonでエラー「NameError: name 'true' is not defined」が発生した時
2018年7月16日
| カテゴリ: python
pythonでスクリプトを実行すると"NameError: name 'true' is not defined"エラーが発生することがあります。
エラーになる原因はpythonの真偽値はtrue, falseではなく、先頭が大文字のTrue, Falseであるためで、先頭を大文字にすれば良いです。
## ...
pythonでは、自然言語処理を行うのに便利なライブラリが数多く用意されています。
その中でも有名なNLPライブラリとして、Scikit-Learn,NLTK,Gensim,spaCy,NetworkX,Yellowbrickなどがあります。
## Scikit-Learn
- SciPyの拡張で、機械学習のライブ...

[python]変数がNoneTypeであるかを判定する
2018年7月13日
| カテゴリ: python
pythonで,変数がNoneTypeであるかを判定したい場合、条件式の`is None`を使用すると良いです。
## サンプルプログラム
```language-python
x = None
print(type(x))
if x is None:
print('xはNoneTypeです')
```
## 実行例
```language...
pythonのvenv環境でmatplotlibを使おうとすると以下のRuntimeErrorが発生したので、解決させた方法を書いておきます。
- エラーメッセージ
```language-xxx
RuntimeError: Python is not installed as a framework.
The Mac OS X backend will not b...

[python]指定ディレクトリに存在するファイル一覧を、ファイル名でソートして取得する
2018年7月3日
| カテゴリ: python
pythobでは、os.listdir()関数で、ディレクトリ内に存在するファイルの一覧を取得できます。
```language-python
import os
files = os.listdir('output')
for file in files:
print(file)
```
上記のプログラムを実行してみたところ、出...

[python]SAOテレビシリーズ(英語版)の字幕スクリプトをスクレイピングする(Sword Art Online)
2018年7月3日
| カテゴリ: python
animetranscripts.wikispaces.comというサイトでは、英語版が出ているアニメ作品の字幕スクリプトのテキストを有志の人が作成し、提供してくれています。
今回は、プログラムの勉強をかねて、このテキストを全部スクレイピングしてテキストファイルに出...

[python]ディレクトリが無かったら作成する処理
2018年7月3日
| カテゴリ: python
pythonで、指定されたディレクトリがなければ作成するプログラムです。
下記のサンプルでは、outputというディレクトリの存在チェックを行い、なければ作成しています。
## プログラム
```language-python
import os
if not os.path.exists('...
pythonでBeautifulSoupを使おうとしたときに「UserWarning: No parser was explicitly specified」の警告が出ることがあります。
## 実行したコード
```language-python
import requests
from bs4 import BeautifulSoup
url = 'http://animetrans...

[python] json.dump()で日本語\uXXXXの形に変換させずに出力する
2018年6月23日
| カテゴリ: python
pythonではオブジェクトをjson文字列として出力したいとき、json_dump()を使用すると便利です
```language-python
import json
import sys
json.dump({'name': 'テスト'}, sys.stdout)
```
ですが、このコードを出力すると、下記のように日本...

[python]TfidfVectorizerで指定するnormパラメータの意味を理解する
2018年5月30日
| カテゴリ: scikit-learn
pythonでtf-idf処理を行う時によく利用される、TfidfVectorizer()には,単語ベクトルを成果するためにnormパラメータというものがあります。
今回、このnormの役割を確認するために、ソースコードを確認してみました。
## normパラメータの説明
公式...
pythonのscikit-learnライブラリには、tf/idf処理を行うTfidfVectorizer()という関数があります。
また、TfidfVectorizer()はtf-idf値の計算に内部的に TfidfTransformer()という関数を使用しています。
今回は、このTfidfTransformer()関数の仕様を...

[python]対数を取る関数math.log()と、対数/自然対数とは何かを直感的に理解する
2018年5月24日
| カテゴリ: python
pythonで対数を取る関数math.log()の使い方と、対数自体の概念のおさらいです。
特に対数は久しぶりに使うとなんの事だったか忘れてしまうので、順を追って分かりやすく説明しています。
## 対数を取る
pythonで対数の計算を行いたいときはmath.log...
pythonでは、collections.Counter()を使って配列の各要素が何回出てきたかの度数分布を簡単に求めることができます。
自然言語処理(NLP)なので単語の出現頻度(word frequency)を求めたい場合、この機能を使うと便利です。
## プログラム
```languag...

[python3]一定秒数スリープする: time.sleep()
2018年5月13日
| カテゴリ: python
pythonで一定時間プログラムをスリープさせたい場合は、time.sleep()を使用します。
## プログラム
```language-python
import time
print('start')
time.sleep(1)
print('1sec')
time.sleep(0.5)
print('1.5sec')
```
## 実行結果
プ...

[python3]文字を改行せずに出力する : sys.stdout.write()
2018年5月13日
| カテゴリ: python
|
pythonで文字を改行せずに出力するには、sys.stdoit.write()メソッドを使用します。
write()で出力した文字は、出力バッファリングされます。直ぐに出力したい場合はflush()を使用します。
## サンプルコード
下記のサンプルは、1秒に一回`.`を...

[python]cliからワンライナーでスクリプトを実行する方法(-cオプション)
2018年5月13日
| カテゴリ: python
pythonでシェルから直接ワンライナーのプログラムを実行したい場合は、`-c`オプションを使用します。
```language-bash
$ python -c "print('hello world')"
hello world
```

[python]辞書(ハッシュ)のデータを値の順でソートする
2018年5月13日
| カテゴリ: python
pythonでは他の言語で連想配列/ハッシュに相当するデータ構造として、辞書(Dictionary)型というものがあります。
pythonの辞書データを値の順や、キーの順でソートするサンプルコードを紹介します。
## サンプルコード
変数`data`に入ったデー...
macOS上でpythonからmecab-python3をインストールしようとしたら、エラー「mecab-config: command not found」が発生した
## 発生した事象と、解決の手順
まず、brewでmecabとmecab-ipadicをインストールする
```language-bash
brew install mecab...

[python]文字と数字を"+"で連結するとエラー"TypeError: must be str, not int"
2018年5月12日
| カテゴリ: python
pythonで文字列と数値を`+`演算子で連結すると、以下のようにTypeError: must be str, not intエラーが発生します
## エラー例
プログラム
```language-python
message = '1+1は' + (1+1) + 'です'
print(message)
```
エラー例
```language...

[python]数値の計算方法(割り算の端数処理、べき乗)
2018年5月12日
| カテゴリ: python
python3を使った数値計算に関する演算子です加減乗除は他の言語と同じなので、pythonならではのモノのみ記載します。
```language-python
# 割り算
# python3の時は、浮動小数で計算される(python2は端数が切られる)
print(3 / 2) # -> 1.5
...

[python]変数のデータ型を確認する
2018年5月11日
| カテゴリ: python
pythonではtype()を使用することで変数のデータ型を確認できます。
## プログラム
```language-python
val = 1
print("- 1 -")
print(type(val))
val = 'a'
print("- 2 -")
print(type(val))
val = [1, 2, 3]
print("- 3 -")
print(type(...

macOSでpyenvを使う[2018年, macOS High Sierra]
2018年5月10日
| カテゴリ: python
|
pythonではpyenvを使うことで、python2系とpython3系を共存させることができます。
今回は、このpyenvをmacOSにインストールして、別バージョンのpythonをインストールしてみました。
## 実行環境
macOS High Sierra10.13.4
brewで、gitコマン...

[python]ファイルの中身全体を取得して、改行を取り除く
2018年5月8日
| カテゴリ: python
pythonを使って、指定されたファイルの内容全部を取得した上で、ファイル内に含まれる改行を取り除き、1行に連結するプログラムです。
## プログラム
```language-python
# test01.py
text = open("input.txt").read().replace('\n', ' ')
print...
pythonでMeCabの分かち書き機能を利用して、特定のファイル内に存在する単語の出現回数を求めるプログラムです。
単語の出現回数を求めることは、自然言語処理の中ではtf(term frequency)と呼ばれています。
## プログラム
```language-python
# tf....
ファイルから読み込むと末尾に改行文字が付くので、改行を取り除く必要がある点に注意。
## プログラム
```language-python
import sys
import MeCab
m = MeCab.Tagger ("-Owakati")
for line in open('input.txt', 'r'):
words = m.par...

[python]scikit-learnのインストールに必要なダウンロード容量
2018年5月6日
| カテゴリ: python
pythonのscikit-learnをインストールするのに必要だったダウンロードファイルのサイズをメモしておきます。
合計55Mbyteぐらいで、モバイル回線経由でも問題なくダウンロードできる程度でした。
## 実行したコマンド
```language-bash
pip install n...
AmazonLinuxで、Python3から形態素解析ライブラリのMeCabを使用できるようセットアップしたVagrantの設定ファイルを作成しました。
下記の内容をVagrantfileの名前で保存し、vagrantが入った環境で`vagrant up`するだけで環境が構築できます。
[関連...
MeCabで形態素解析を行わず、分かち書きだけ行いたい場合は、`-Owakati`オプションを使用すれば良いです。
まずは下記の内容でファイルinput.txtを用意しておきます
```language-bash
すもももももももものうち
```
その後、以下のように`-Owakat...

[Python]Linuxで作成したスクリプトを実行可能にする方法
2018年5月5日
| カテゴリ: python
Linuxで作成したpythonスクリプトを実行可能な形式にするには、以下の2つを行えば良いです。
- ファイルの先頭に"#!"を追加
- ファイルに実行権限を与える
## ファイルの先頭に"#!"を追加
まずは、pythonのスクリプトの先頭に`#!/usr/bin/env pyth...
pythonでMeCabを使おうとしたところ、いろいとエラーがでてハマったので、発生したエラーと対処した方法を書いておきます。
## 作ったプログラム
今回動作させようとしたプログラムは下記で、与えられた文章の形態素解析を行うものです。
```language...

[python]pyenvがバージョンを切り替える仕組みを理解する
2018年5月5日
| カテゴリ: python
|
pythonではpyenvというツールを使うことで、1台のPCに複数バージョンのpython環境を共存させることができます。
pyenvは非常に便利なツールなのですが、仕組みがわかっていないと思った通りにバージョン切り替えを行えなかったりトラブルを生んでしまう...

[Google App Engine]dev_appserver.pyで、No module named 'setup'エラー
2017年9月21日
| カテゴリ: python
|
Google App Engineを使った開発を行う際、dev_appserver.pyを実行すると`No module named 'setup'`エラーが出ることがあります。
```language-bash
> dev_appserver.py app.yaml
Traceback (most recent call last):
File "C:\Users\xxx\AppData...