Как настроить библиотеку pyhidapi для поиска hidapi.dll в папке проекта? - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь скомпилировать свое приложение с помощью cx_Freeze.

На компьютере разработчика (с Windows 10) программа работает хорошо.Но когда я пробую это на другой машине (с Windows 7), я получаю сообщение об ошибке.Странно, что, когда я пробовал это на другом компьютере с Windows 10., не было никакой ошибки.

Одна из библиотек - "pyhidapi" - ищет hidapi.dll в некоторых странных местах.

C:\Users\***\Downloads\build>main
Traceback (most recent call last):
  File "C:\Python3\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line
 14, in run
  File "C:\Python3\lib\site-packages\cx_Freeze\initscripts\Console.py", line 26,
 in run
  File "main.py", line 14, in <module>
  File "main.py", line 8, in main
  File "C:\ntt_flashcopier_source\interface\qt_interface.py", line 39, in __init
__
  File "C:\ntt_flashcopier_source\ntt_flash_copier\ntt_flash_copier.py", line 14
, in __init__
  File "C:\ntt_flashcopier_source\ntt_flash_copier\device_list\device_list.py",
line 11, in __init__
  File "C:\ntt_flashcopier_source\ntt_flash_copier\device_list\device_implemento
r_list.py", line 10, in __init__
  File "C:\ntt_flashcopier_source\ntt_flash_copier\device_list\hid_device_finder
.py", line 8, in __init__
  File "C:\Python3\lib\site-packages\pyhidapi\pyhidapi.py", line 417, in hid_ini
t
  File "C:\Python3\lib\site-packages\pyhidapi\pyhidapi.py", line 162, in __load_
hidapi
RuntimeError: Could not find the hidapi shared library.

Вот мой файл setup.py:

from cx_Freeze import setup, Executable

executables = [
    Executable('main.py',
               icon='icon.ico')
]

_excludes = []
_include_files = ["hidapi.dll", 'conf.xml']
_includes = []

build_exe_options = {'include_msvcr': True,
                     'include_files': _include_files,
                     'includes': _includes,
                     'excludes': _excludes,
                     'build_exe': 'build',
                     }

setup(name='main',
      version='0.1',
      description='NTT Flash Copier',
      options={"build_exe": build_exe_options},
      executables=executables,
      requires=['pyhidapi', 'psutil', 'PyQt5']
      )

Я ожидаю, что эта программа будет работать на Windows 7 и 10 без дополнительных установок, таких как python и т. Д. Простая, скажем, переносимая.

РЕДАКТИРОВАТЬ 1 : Возможно, проблема в системе (Windows 7).Я обнаружил, что cx_Freeze не может выполнять многоплатформенную компиляцию.Завтра я попытаюсь скомпилировать код в системе Windows 7.

РЕДАКТИРОВАТЬ 2 : Готово предыдущее.Это все еще вызывает у меня ту же проблему и не работает на других машинах с Windows 10.

EDIT 3 : Теперь я пытаюсь установить virtualenv для своего проекта.Я получил ту же ошибку.Я думаю, что должен быть другой способ установить pyhidapi.

EDIT 4 : попытался установить pyhidapi из исходного кода.Ошибка все еще там.Сейчас я переписываю код для реализации библиотеки pywinusb.Мне нужно ответить на этот вопрос или я оставлю его открытым, может быть, кто-то ответит на него?

...