#python-3.x #ctypes #cx-freeze #hidapi
#python-3.x #ctypes #cx-замораживание #hidapi
Вопрос:
Я пытаюсь скомпилировать свое приложение с помощью cx_Freeze.
На компьютере разработчика (с Windows 10) программа работает хорошо. Но когда я пробую это на другом компьютере (с Windows 7), я получаю сообщение об ошибке. Странно, что когда я попробовал это на другом компьютере с Windows 10, ошибки не было.
Одна из библиотек — «pyhidapi» — поиск hidapi.dll в каких-то странных местах.
C:Users***Downloadsbuild>main
Traceback (most recent call last):
File "C:Python3libsite-packagescx_Freezeinitscripts__startup__.py", line
14, in run
File "C:Python3libsite-packagescx_FreezeinitscriptsConsole.py", line 26,
in run
File "main.py", line 14, in <module>
File "main.py", line 8, in main
File "C:ntt_flashcopier_sourceinterfaceqt_interface.py", line 39, in __init
__
File "C:ntt_flashcopier_sourcentt_flash_copierntt_flash_copier.py", line 14
, in __init__
File "C:ntt_flashcopier_sourcentt_flash_copierdevice_listdevice_list.py",
line 11, in __init__
File "C:ntt_flashcopier_sourcentt_flash_copierdevice_listdevice_implemento
r_list.py", line 10, in __init__
File "C:ntt_flashcopier_sourcentt_flash_copierdevice_listhid_device_finder
.py", line 8, in __init__
File "C:Python3libsite-packagespyhidapipyhidapi.py", line 417, in hid_ini
t
File "C:Python3libsite-packagespyhidapipyhidapi.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.
РЕДАКТИРОВАТЬ 3: теперь я пытаюсь установить virtualenv для своего проекта. Я получил ту же ошибку. Я думаю, что должен быть другой способ установки pyhidapi.
РЕДАКТИРОВАНИЕ 4: попытался установить pyhidapi из исходного кода. Ошибка все еще существует. Сейчас я переписываю код для реализации библиотеки pywinusb. Нужно ли мне отвечать на этот вопрос или я оставлю его открытым, может быть, кто-нибудь ответит на него?
Комментарии:
1. Вы смотрели в пакете? Является hidapi.dll там? есть ли у нее какие-либо зависимости? Также как вы пришли к выводу, что » поиск hidapi.dll в каких-то странных местах «?
2. Я посмотрел, в пакете нет hidapi.dll , но я включаю его в каталог сборки. О зависимостях — я уже не знаю. В документах ничего не было, но они плохие. Я постараюсь это проверить, спасибо. «поиск hidapi.dll в некоторых странных местах»: Нет ни одного C:ntt_flashcopier_source на компьютере с Windows 7. Этот путь находится на исходном компьютере с Windows 10.