7

我正在尝试使用介子 Gnome PasswordSafe 构建应用程序。我已经在 Arch 上成功构建了它,但后来转移到了 PureOS (Debian)。

运行时:

 $ meson . _build --prefix=/usr

它告诉我:

meson.build:36:4:错误:遇到的问题:缺少依赖项 pykeepass >= master

我错过了什么?

谢谢!


pykeepass使用pip. 当那不起作用时,我尝试使用 pip3。当那不起作用时,我再次尝试了两者,但使用了 sudo。还是没有骰子。

然后我从 repo/source ( https://github.com/pschmitt/pykeepass ) 安装它。没有骰子。


目前,python help 识别pykeepass为安装到:

/home/dc3p/.local/lib/python3.7/site-packages/pykeepass/__init__.py
/usr/local/lib/python3.7/dist-packages/pykeepass/__init__.py
/home/dc3p/.local/lib/python2.7/site-packages/pykeepass/__init__.py
/usr/local/lib/python2.7/dist-packages/pykeepass/__init__.py

pip并且pip3列表显示pykeepass为存在。

虽然我目前在所有四个位置都安装了它,但我也尝试过一次只在任何位置安装一个。

我也尝试过meson不带和带 sudo 的命令。不管我做什么,介子都会抛出同样的错误。

预期结果是构建。

4

1 回答 1

1

PasswordSafe 中的meson.build文件正在测试文件系统中是否存在目录,如果安装目录不同,则可能导致误报。请参阅下面的代码摘录。

# Python Module Check
pykeepass_dir = join_paths(python_dir, 'pykeepass')
construct_dir = join_paths(python_dir, 'construct')

if run_command('[', '-d', pykeepass_dir, ']').returncode() != 0
    error('Missing dependency pykeepass >= master')
endif

if run_command('[', '-d', construct_dir, ']').returncode() != 0
    error('Missing dependency python-construct >= 2.9.45')
endif

您可以将上面的内容替换为以下内容以测试基于导入的依赖项:

python3_required_modules = ['pykeepass', 'construct']

foreach p : python3_required_modules
    script = 'import importlib.util; import sys; exit(1) if importlib.util.find_spec(\''+ p +'\') is None else exit(0)'
    if run_command(python_bin, '-c', script).returncode() != 0
        error('Required Python3 module \'' + p + '\' not found')
    endif
endforeach

pykeepass如果在您的路径内,这应该可以解决问题。

于 2020-02-27T10:04:29.417 回答