備忘録

【Python】IPython.lib.passwdをimportしようとしてエラーが発生した場合の解消法

現象

from IPython.lib import passwd

を実行した際に以下のエラーが発生

ImportError: cannot import name 'passwd' from 'IPython.lib' (/usr/local/lib/python3.10/site-packages/IPython/lib/__init__.py)

原因と対処法

2022年3月3日にリリースされたversion8.1.0でpasswd関数が削除されたことが原因のようです。

従って、version8.0.0以前のipythonを使用すればひとまずは解消します。

具体的には以下のコードを実行。(必要に応じてrequirements.txtの更新も併せて行って下さい。)

pip install ipython==8.0.0

ただし、version8.1.0でこの関数が削除された理由が今後メンテナンスの予定が無いからとのことなので、継続的な使用は避けたほうが無難です。

参考:https://github.com/ipython/ipython/pull/13545

代替法としては、notebookモジュールのpasswd関数を使用しましょう。

まずは以下のコマンドでnotebookモジュールをインストールします。

pip install notebook

続いて、python(or python3)と打ち込みインタプリタを起動したら、以下のコードでimportと関数の実行が可能です。

from notebook.auth import passwd
passwd()