Pythonコードをクラウド環境に移行した際に発生したエラーと対処

ローカルマシン上のPython3からクラウドサーバ上のPython2に移行する際に検出したエラーと対処をまとめます。
”ローカルマシン上のPython3”では動作していたコードを移行したので、エラー原因は、Pythonのバージョン差異かクラウド環境のなどの環境差異です。

エラーメッセージ:SyntaxError: Non-ASCII character ‘\x95’ in file xxxx.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
原因:環境依存、文字コードを認識していない
対処:一番最初に次の1行を追加する。 

# -*- coding: utf-8 -*-

エラーメッセージ:in from bs4 import BeautifulSoup ImportError: No module named bs4

原因:環境依存、 BeautifulSoup ライブラリが使えない?
対処:→とりあえず 、 BeautifulSoup を使わない実装に変更 

エラーメッセージ:Traceback (most recent call last): File “xxxx.py”, line XX, in import urllib.request ImportError: No module named request

原因: Pythonバージョン依存 、 Python2と3で、urllibのライブラリ構成が異なる
対処:Python2用のコードに書き換え

 

エラーメッセージ:raceback (most recent call last):
File “xxxx.py”, line XX, in
saveFile.write(res.content)
AttributeError: addinfourl instance has no attribute ‘content’

原因: Pythonバージョン依存 移行不備?
対処: Python2用のコードに書き換え

エラーメッセージ:Traceback (most recent call last):
File “xxxx.py”, line XX, in

UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 9-27: ordinal not in range(128)

→ 修正  http://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html