【问题标题】:protonvpn RuntimeError: Couldn't find acceptable executables for {'xdg-open'}protonvpn RuntimeError:找不到 {'xdg-open'} 可接受的可执行文件
【发布时间】:2022-07-08 20:13:32
【问题描述】:

简而言之,每当我尝试从命令行protonvpn-cliprotonvpn-gui 运行时,都会收到类似的错误:RuntimeError: Couldn't find acceptable executables for {'xdg-open'}
几个小区别:
1) 对于protonvpn-cli,我在执行后立即收到错误;对于protonvpn-gui,界面启动正常,尝试快速连接时出现错误。
2) 对于protonvpn-gui,由于明显的sudo 呼叫,我被要求输入密码。

我该如何解决这个问题?

我在下面发帖:

  1. 获得的完整错误。
  2. 关于我的操作系统等的信息。
  3. 我在 python 中进行的一些调试。

完全错误

对于protonvpn-cli

$ /usr/bin/protonvpn-cli
Traceback (most recent call last):
  File "/usr/bin/protonvpn-cli", line 11, in <module>
    load_entry_point('protonvpn-cli==3.11.1', 'console_scripts', 'protonvpn-cli')()
  File "/usr/lib/python3/dist-packages/protonvpn_cli/main.py", line 20, in main
    from .cli import ProtonVPNCLI
  File "/usr/lib/python3/dist-packages/protonvpn_cli/cli.py", line 8, in <module>
    from .cli_wrapper import CLIWrapper
  File "/usr/lib/python3/dist-packages/protonvpn_cli/cli_wrapper.py", line 9, in <module>
    from protonvpn_nm_lib.api import protonvpn
  File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/api.py", line 6, in <module>
    from .core.report import BugReport
  File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/report/__init__.py", line 1, in <module>
    from .bug import BugReport
  File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/report/bug.py", line 7, in <module>
    from ..subprocess_wrapper import subprocess
  File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/subprocess_wrapper.py", line 123, in <module>
    subprocess = SubprocessWrapper() # noqa
  File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/subprocess_wrapper.py", line 34, in __init__
    self.__ensure_executables_exist()
  File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/subprocess_wrapper.py", line 81, in __ensure_executables_exist
    raise RuntimeError(
RuntimeError: Couldn't find acceptable executables for {'xdg-open'}

对于protonvpn-gui

$ /home/user1/anaconda3/bin/protonvpn-gui
[sudo] password for user1:

(protonvpn-gui:7452): Gtk-WARNING **: 05:24:59.860: Failed to set text 'traceback (most recent call last):
  file "/usr/bin/protonvpn", line 11, in <module>
    load_entry_point('protonvpn-gui==1.7.0', 'console_scripts', 'protonvpn')()
  file "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 490, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  file "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2854, in load_entry_point
    return ep.load()
  file "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2445, in load
    return self.resolve()
  file "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2451, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  file "/usr/lib/python3/dist-packages/protonvpn_gui/main.py", line 16, in <module>
    from protonvpn_nm_lib.api import protonvpn
  file "/usr/lib/python3/dist-packages/protonvpn_nm_lib/api.py", line 6, in <module>
    from .core.report import bugreport
  file "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/report/__init__.py", line 1, in <module>
    from .bug import bugreport
  file "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/report/bug.py", line 7, in <module>
    from ..subprocess_wrapper import subprocess
  file "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/subprocess_wrapper.py", line 123, in <module>
    subprocess = subprocesswrapper() # noqa
  file "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/subprocess_wrapper.py", line 34, in __init__
    self.__ensure_executables_exist()
  file "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/subprocess_wrapper.py", line 81, in __ensure_executables_exist
    raise runtimeerror(
runtimeerror: couldn't find acceptable executables for {'xdg-open'}
' from markup due to error parsing markup: Error on line 27 char 10: Element "markup" was closed, but the currently open element is "module"

操作系统等信息

我正在使用 Bodhi Linux,它是 Ubuntu 的衍生产品,根据我的经验,它在大多数用途(但不是全部)上与 Ubuntu 相同。以至于

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.4 LTS
Release:        20.04
Codename:       focal

我在 anaconda3 的 (base) virtualenv 中安装了 protonvpn。 我不是故意这样做的,但这只是.bashrc 的默认行为。 其中一个后果是,由于 protonvpn(至少部分)是一组 python 脚本,其中一些(但不是全部)被安装到 anaconda3 目录。

$ type protonvpn
protonvpn is /home/user1/anaconda3/bin/protonvpn
$ type protonvpn-gui
protonvpn-gui is /home/user1/anaconda3/bin/protonvpn-gui
$ type protonvpn-cli
protonvpn-cli is /usr/bin/protonvpn-cli

我猜这个混淆是问题的一部分

$ ll /home/user1/anaconda3/bin/python3
/home/user1/anaconda3/bin/python3 -> python3.9
$ ll /home/user1/anaconda3/bin/python3.9
/home/user1/anaconda3/bin/python3.9
$ ll /usr/bin/python3.8
/usr/bin/python3.8

在 python 中调试

我用sudo /home/user1/anaconda3/bin/spyder 启动了spyder,然后我打开并调试了/home/user1/anaconda3/bin/protonvpn-gui。 在subprocess_wrapper.py:81中的错误之前设置断点,我发现它需要4个二进制文件(如set_acceptable_binaries中所列):nmclixdg-openclearsystemctldict _path_to_binaries 表明它只找到了其中的 3 个:{ clear: /usr/bin/clear, nmcli: /usr/bin/nmcli, systemctl: /usr/bin/systemctl }。 奇怪的是,在同一个目录中的/usr/bin/xdg-open 没有找到。除非版本有问题。

【问题讨论】:

  • 不如新建一个virtualenv,用python3.9作为python。在那个virtualenv下安装protovpn?我对多个 python 版本以及安装 protovpn 东西的不同路径有点困惑。

标签: python anaconda xdgutils protonvpn


【解决方案1】:

我不确定为什么会发生这种情况,但现在只需编辑 python 文件。

/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/subprocess_wrapper.py

 76         # Were we unable to find executables? This is bad
 77         if len(self._path_to_binaries) != len(self._acceptable_binaries):
 78             missing_executables = self._acceptable_binaries.difference(
 79                 self._path_to_binaries.keys()
 80             )
 81             """raise RuntimeError(
 82                 "Couldn't find acceptable "
 83                 "executables for {}".format(missing_executables)
 84             )"""
 85             pass

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    • 2013-11-20
    • 2012-07-22
    • 2017-05-07
    • 1970-01-01
    相关资源
    最近更新 更多