■ エラー「Error: failed to bind socket」が表示される
* python実行後、以下「エラー内容」が表示される
エラー内容
Error: failed to bind socket failed to begin input stream
原因
* ポート「10500」を掴んでいるプロセスがいる解決案
# ポート10500のPIDを探す sudo netstat -anp | grep 10500 tcp 0 0 0.0.0.0:10500 0.0.0.0:* LISTEN 1821/julius # kill -9 【PID】でプロセスをキルする kill -9 1821
■ エラー「UnicodeEncodeError: 'ascii' codec can't encode characters」が表示される
* str(client.recv(1024).decode('utf-8'))で読み取り時に、以下のエラー内容が表示される
エラー内容
Traceback (most recent call last): File "hello_raspi.py", line 99, in <module> main() File "hello_raspi.py", line 89, in main data += str(client.recv(1024).decode('utf-8')) UnicodeEncodeError: 'ascii' codec can't encode characters in position 360-362: ordinal not in range(128)
解決案
* Pythonの文字コードを utf-8 に設定する。 => sitecustomize.py に utf-8 を設定確認方法
$ python Python 2.7.13 (default, Jan 19 2017, 14:48:08) [GCC 6.3.0 20170124] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.getdefaultencoding() 'ascii' << これを utf-8 に変更する必要がある >>> exit();
具体的に行ったこと
# 念のため、バックアップ sudo cp /usr/lib/python2.7/sitecustomize.py /usr/lib/python2.7/sitecustomize.py.orig sudo vi /usr/lib/python2.7/sitecustomize.py -=[全面的に書き換え]-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= import sys sys.setdefaultencoding('utf-8') -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= $ python >>> import sys >>> sys.getdefaultencoding() 'utf-8' << utf-8 に変更されたことを確認 >>> exit();
参考文献
http://kenzo0107.hatenablog.com/entry/2016/02/16/110854http://d.hatena.ne.jp/omiyan/20110105/p1