回答編集履歴
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
|
+
```
|