使用pyinstaller的sitepackages路径

2024-10-08 18:27:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个pyinstaller规范文件,需要添加一个在库中找到的DLL。这是现在在我自己的目录这里:

a = Analysis(['eyecommand.py'],
         pathex=['.'],
         binaries=["C:\users\wwade\appdata\local\programs\python\python39\lib\site-packages\pyvjoy\utils\x64\vJoyInterface.dll"],
         datas=added_files,
         hiddenimports=["skimage.filters.rank.core_cy_3d","pynput.keyboard._win32", "pynput.mouse._win32"],
         hookspath=[],
         runtime_hooks=[],
         excludes=[],
         win_no_prefer_redirects=False,
         win_private_assemblies=False,
         cipher=block_cipher,
         noarchive=True)
         

问题是我不想提交那个二进制行-它会在任何其他人的机器上中断。有没有一种方法可以“一般地”指向site-packages目录

%SITEPACKAGES%\pyvjoy\utils\x64\vJoyInterface.dll

Tags: 规范目录falsepackagessiteutilswindll
1条回答
网友
1楼 · 发布于 2024-10-08 18:27:55

如果要收集动态库(如指定的vJoyInterface.dll),可以使用command line switch{}。该选项在PyInstaller 4.3或更高版本中提供

关于你的问题,有一个类似的here函数叫做get_package_paths(),你可以这样使用它:

import os
from PyInstaller.utils.hooks import get_package_paths

pyvjoy_ = get_package_paths('pyvjoy')[1]
os.path.join(pyvjoy_, 'utils', 'x64', 'vJoyInterface.dll')

同时,不需要pynputhiddenimports,因为在pyinstaller-hooks-contrib 2021.3版本上添加了一个新的pynput钩子

相关问题 更多 >

    热门问题