我正在尝试使用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库。我需要回答这个问题,还是将其打开,也许有人回答?