Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос по python

Diz Dizel Знаток (424), открыт 2 дня назад
Написал простенький код на пайтон. При запуске кода в pycharm работает без ошибок. Пытаюсь скомпилировать в .exe файл - "pyinstaller --onefile main.py". При запуске получившегося файла появляется окно меньше чем на секунду с ошибкой. На сколько смог рассмотреть ошибку - что-то вроде: no module named pynput
Что нашёл на форумах, попробовал и это НЕ помогло:
1) "Верни версию pynput 1.6.8"
2) Добавь hidden import вроде
pyinstaller --onefile --hidden-import=pynput.mouse._xorg main.py или
pyinstaller --onefile --hidden-import=pynput.mouse._win32 main.py или
pyinstaller --onefile --hidden-import pynput.mouse main.py или
pyinstaller --onefile --hidden-import pynput main.py

ничего не помогло. Может кто-то сталкивался?
(windows 10, список импортов в проекте:
import tkinter as tk
from pynput import mouse
import pyperclip
import time)
1 ответ
Минирсику писику Профи (827) 1 день назад
Проблема с модулем pynput при компиляции с помощью pyinstaller довольно распространена, так как этот модуль использует низкоуровневые системные вызовы, которые могут быть не полностью учтены при сборке. Вот несколько шагов, которые вы можете попробовать, чтобы решить эту проблему:

Убедитесь, что у вас последняя версия PyInstaller:
 pip install --upgrade pyinstaller 
Используйте --hidden-import для всех необходимых подмодулей:
Попробуйте добавить все возможные подмодули pynput:
 pyinstaller --onefile --hidden-import=pynput --hidden-import=pynput.mouse --hidden-import=pynput.keyboard --hidden-import=pynput.mouse._win32 --hidden-import=pynput.keyboard._win32 main.py 
Используйте --collect-all для pynput:
Этот параметр может помочь собрать все необходимые данные для модуля:
 pyinstaller --onefile --collect-all pynput main.py 
Проверьте наличие зависимостей в виртуальном окружении:
Убедитесь, что все зависимости установлены в вашем виртуальном окружении и что вы используете его при сборке:
 pip install pynput pyperclip 
Проверьте лог-файлы PyInstaller:
PyInstaller создает лог-файлы в папке build. Посмотрите их, чтобы увидеть, какие модули не были найдены или импортированы.

Используйте spec файл:
Создайте .spec файл и добавьте необходимые hidden imports вручную:
 pyinstaller --onefile main.py 
Затем откройте main.spec и добавьте hidden imports:
 hiddenimports=['pynput', 'pynput.mouse', 'pynput.keyboard', 'pynput.mouse._win32', 'pynput.keyboard._win32'] 
После этого запустите сборку с помощью .spec файла:
 pyinstaller main.spec 
Проверьте версию pynput:
Убедитесь, что у вас установлена последняя версия pynput:
 pip install --upgrade pynput 
Если ни один из этих шагов не поможет, возможно, стоит попробовать использовать альтернативные библиотеки для управления мышью и клавиатурой, такие как keyboard и mouse, которые могут быть более совместимы с pyinstaller
Похожие вопросы