1

我正在尝试使用 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 机器上不起作用。

编辑 3:现在我正在尝试为我的项目设置 virtualenv。我得到了同样的错误。我认为必须有另一种安装pyhidapi的方法。

编辑 4:试图从源代码安装 pyhidapi。错误仍然存​​在。现在我正在重写代码来实现 pywinusb 库。我是否需要回答这个问题,否则我会保持开放状态,也许有人回答?

4

0 回答 0