仮想計算機構

IT業界と無縁な派遣社員のブログ

「PythonとJavaScriptではじめるデータビジュアライゼーション」3.6.5 の freeze について

発生したエラー

datasetというモジュールの利用する際のエラーについて。SQLクエリの結果をCSVに変換・保存する際に freeze を利用します。書籍P66における例でいうと

dataset.freeze(winners, format='csv', filename='data/nobel_winners_ds.csv')

という書き方になりますが、これは以下のエラーによりうまくいきません。

AttributeError: module 'dataset' has no attribute 'freeze'

下記のQAによると、dataset モジュール自体が2つのモジュールに分かれているようです。

必要なのは datafreeze のインストールです。

> pip install datafreeze

元のコード自体は下記のように変更しておきます。

from dataset.app import freeze
freeze(winners, format='csv', filename='data/nobel_winners_ds.csv')

改めて実行するとまたエラーが出てしまいます。

  File "C:\Users\user\anaconda3\envs\py376\lib\site-packages\datafreeze\format\common.py", line 7, in <module>
    from normality import slugify
ModuleNotFoundError: No module named 'normality'

normality というモジュールがないと怒られているのでインストールします。

> pip install normality

改めて実行すると、dataディレクトリ配下にCSVファイルが正しく保存されていることが確認できました。

筆者の環境

OS : Windows 10
Python : 3.7.6 (anaconda)
dataset : 1.5.0
datafreeze : 0.1.0
normality : 2.2.5