逆ジオコーディングがWindows10でエラーを吐くので解決してみた

Webアプリを作ろうと書籍「Pythonではじめる Webサービス&スマホアプリの書きかた・作りかた」で勉強しているときに引っかかったので備忘録。

参考書籍

自分はMacOSでもWindowsOSでも気分でこの本の学習を進めてるのですが、たまたま逆ジオコーディングのところをやっているときにWindows10特有のエラーに引っかかってしまいGoogle先生に尋ねたところ、結構あっさり解決しました。

ちなみにエラーの内容は

RuntimeError: The current Numpy installation ('C:\\Users\\newko\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\numpy\\__init__.py') fails to pass a sanity check due to a bug in the windows runtime. See this issue for more information: https://tinyurl.com/y3dm3h86

なんかここのサイトを訪ねろと書いてあったので尋ねたのですが英語でWindows特有のエラーだ的なことが議論されてました。

解決方はよくわからなかったので普通にエラーコードをぐぐってみるとこちらのサイトで解説されていました。

どうやらNumpyの最新版とWindowsOSの相性が悪いようなのでNumpyのバージョンを下げます。

pip install numpy==1.19.3
こういち
ちなみに参考書籍にはライブラリのバージョン指定があったから、ちゃんと言われたとおりにインストールしていれば回避できたかも…笑

これで治った!!と思ったところまた別のエラーが…

UnicodeDecodeError: 'cp932' codec can't decode byte 0x98 in position 429: illegal multibyte sequence

どうやら今度はUnicodeのDecodeエラーのようですね(←このくらいはわかった)

またGoogle先生に聞いたところ今度はこちらのサイトに誘われ…

File "C:\Users\newko\AppData\Local\Programs\Python\Python39\lib\site-packages\reverse_geocode\__init__.py", line 100, in extract
    for latitude, longitude, country_code, city in rows:

UnicodeDecodeErrorの上に表示されていた__init__.pyの中をいじってあげます。

src = open(filename, "r", encoding="utf-8").read()

「encoding="utf-8"」の部分を追記ですね!

するとこんな感じでしっかり逆ジオコーディングが出来ました。

Coord: (35.659025, 139.74505)
Country: Japan
City: Tokyo
おすすめの記事