事象
PyGazeというEye Tracker用のPythonライブラリのサンプルプログラムであるannoying_message.py実行時に下記のエラーが発生。
/Users/xxx/PycharmProjects/pygaze/venv/bin/python /Users/yu/PycharmProjects/pygaze/annoying_message.py Traceback (most recent call last): File "/Users/xxx/PycharmProjects/pygaze/annoying_message.py", line 15, infrom pygaze.libscreen import Display, Screen File "/Users/xxx/PycharmProjects/pygaze/venv/lib/python3.6/site-packages/pygaze/libscreen.py", line 22, in from screen import Screen ImportError: cannot import name 'Screen' Process finished with exit code 1
発生環境
Python 3.6 (Mac OS)
原因
Python 3系のPyGazeライブラリにScreenクラスが含まれていない為。因みに、下記の用にpipでscreenをインストールしても、本件は解消しない。
(venv) $ pip install screen Collecting screen Using cached https://files.pythonhosted.org/packages/a4/d2/68dacd66f28618462650e475f29663eb1f97cecdc3cf8f0881e52f425a3a/screen-1.0.1.tar.gz Building wheels for collected packages: screen Building wheel for screen (setup.py) ... done Stored in directory: /Users/xxx/Library/Caches/pip/wheels/51/44/cd/d14c668e66a41c06ce691c89c71b674161f5e8a50c64d16fbe Successfully built screen Installing collected packages: screen Successfully installed screen-1.0.1 (venv) $
annoying_message.py内の下記のステートメント想定しているインポート先はPyGazeパッケージ内のScreenクラスの為。
from pygaze.libscreen import Display, Screen
解決法
当該スクリプトを実行したい場合は、Python 2.7系でPyGazeの環境構築を行えば良い。