回答編集履歴
1
最小構成での確認方法を追記
    
        answer	
    CHANGED
    
    | @@ -1,3 +1,44 @@ | |
| 1 1 | 
             
            最新の pynput 1.7.* と Pyinstaller の組み合わせには問題があるようです。
         | 
| 2 2 | 
             
            pynput 1.6.8 を利用してみてください。
         | 
| 3 | 
            -
            `pip install pynput==1.6.8`
         | 
| 3 | 
            +
            `pip install pynput==1.6.8`
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            pynput 1.7.1 利用時のエラー例:
         | 
| 6 | 
            +
            ```
         | 
| 7 | 
            +
            (.venv) C:\work\tmp\pynputprj\dist>hoge.exe
         | 
| 8 | 
            +
            Traceback (most recent call last):
         | 
| 9 | 
            +
              File "hoge.py", line 1, in <module>
         | 
| 10 | 
            +
              File "c:\work\tmp\pynputprj.venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
         | 
| 11 | 
            +
                exec(bytecode, module.__dict__)
         | 
| 12 | 
            +
              File "pynput\__init__.py", line 40, in <module>
         | 
| 13 | 
            +
              File "c:\work\tmp\pynputprj.venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
         | 
| 14 | 
            +
                exec(bytecode, module.__dict__)
         | 
| 15 | 
            +
              File "pynput\keyboard\__init__.py", line 31, in <module>
         | 
| 16 | 
            +
              File "pynput\_util\__init__.py", line 76, in backend
         | 
| 17 | 
            +
            ImportError
         | 
| 18 | 
            +
            [60876] Failed to execute script hoge
         | 
| 19 | 
            +
            ```
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            ---
         | 
| 22 | 
            +
            上記で解決しない場合、クリーンで最小の構成で問題が発生するか確認してください。
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            - venv を利用してクリーンな環境を用意する
         | 
| 25 | 
            +
            - 簡単なプログラムでエラーが再現するか確認する
         | 
| 26 | 
            +
            - エラー内容はスタックトレースも含めてすべて張り付ける
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            ```cmd
         | 
| 29 | 
            +
            > mkdir myproj
         | 
| 30 | 
            +
            > cd myproj
         | 
| 31 | 
            +
            > python -m venv _venv
         | 
| 32 | 
            +
            > _venv\Scripts\activate.bat
         | 
| 33 | 
            +
            > pip install pyinstaller pynput==1.6.8
         | 
| 34 | 
            +
            > notepad mytest.py
         | 
| 35 | 
            +
             -- 編集 --
         | 
| 36 | 
            +
            > pyinstaller mytest.py --onefile
         | 
| 37 | 
            +
            > dist\mytest.exe
         | 
| 38 | 
            +
            ```
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            ```python3
         | 
| 41 | 
            +
            # mytest.py
         | 
| 42 | 
            +
            import pynput
         | 
| 43 | 
            +
            print(dir(pynput))
         | 
| 44 | 
            +
            ```
         | 
