ProtonVPN problem with Python not working

I cannot connect with ProtonVPN.
Seems there is problem with Python library.

Although I have installed the ProtonVPN that comes with the distribution.
I have installed python3 (3.6), python39 (3.9), and python311 (3.11).

i+ | protonvpn-cli              | pakke          | 3.13.0-bp155.1.5  | noarch | openSUSE-Leap-15.5-Oss
i+ | protonvpn-gui              | pakke          | 1.12.0-bp155.1.5  | noarch | openSUSE-Leap-15.5-Oss
i  | python3-proton-client      | pakke          | 0.7.1-bp155.2.13  | noarch | openSUSE-Leap-15.5-Oss
i  | python3-protonvpn-nm-lib   | pakke          | 3.7.0-bp155.2.12  | noarch | openSUSE-Leap-15.5-Oss
Setting up Proton VPN.
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/dbus/bus.py", line 177, in activate_name_owner
    return self.get_name_owner(bus_name)
  File "/usr/lib/python3.6/site-packages/dbus/bus.py", line 363, in get_name_owner
    's', (bus_name,), **keywords)
  File "/usr/lib/python3.6/site-packages/dbus/connection.py", line 653, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name 'org.freedesktop.NetworkManager': no such name

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/protonvpn_cli/cli_wrapper.py", line 280, in connect
    protocol=protocol
  File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib/api.py", line 146, in setup_connection
    self._env.connection_backend.setup(**data)
  File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib/core/connection_backend/nm_client/nm_client.py", line 81, in setup
    self._pre_setup_connection(kwargs.get("entry_ip"))
  File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib/core/connection_backend/nm_client/nm_client.py", line 228, in _pre_setup_connection
    killswitch = env.killswitch
  File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib/core/environment.py", line 67, in killswitch
    self.__killswitch = KillSwitch()
  File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib/core/killswitch/killswitch.py", line 61, in __init__
    self.get_status_connectivity_check()
  File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib/core/killswitch/killswitch.py", line 597, in get_status_connectivity_check
    nm_props = self.nm_wrapper.get_network_manager_properties()
  File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib/core/dbus/dbus_network_manager_wrapper.py", line 461, in get_network_manager_properties
    self.get_network_manager_proxy_object()
  File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib/core/dbus/dbus_network_manager_wrapper.py", line 510, in get_network_manager_proxy_object
    return self.__get_proxy_object(SystemBusNMObjectPathEnum.NETWORK_MANAGER.value)
  File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib/core/dbus/dbus_network_manager_wrapper.py", line 536, in __get_proxy_object
    path_to_object
  File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib/core/dbus/dbus_wrapper.py", line 60, in get_proxy_object
    bus_name, object_path
  File "/usr/lib/python3.6/site-packages/dbus/bus.py", line 243, in get_object
    follow_name_owner_changes=follow_name_owner_changes)
  File "/usr/lib/python3.6/site-packages/dbus/proxies.py", line 250, in __init__
    self._named_service = conn.activate_name_owner(bus_name)
  File "/usr/lib/python3.6/site-packages/dbus/bus.py", line 182, in activate_name_owner
    self.start_service_by_name(bus_name)
  File "/usr/lib/python3.6/site-packages/dbus/bus.py", line 280, in start_service_by_name
    'su', (bus_name, flags)))
  File "/usr/lib/python3.6/site-packages/dbus/connection.py", line 653, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.NetworkManager was not provided by any .service files

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/protonvpn-cli", line 11, in <module>
    load_entry_point('protonvpn-cli==3.13.0', 'console_scripts', 'protonvpn-cli')()
  File "/usr/lib/python3.6/site-packages/protonvpn_cli/main.py", line 21, in main
    ProtonVPNCLI()
  File "/usr/lib/python3.6/site-packages/protonvpn_cli/cli.py", line 65, in __init__
    res = getattr(self, args.command)()
  File "/usr/lib/python3.6/site-packages/protonvpn_cli/cli.py", line 133, in connect
    return self.cli_wrapper.connect(args)
  File "/usr/lib/python3.6/site-packages/protonvpn_cli/cli_wrapper.py", line 338, in connect
    except exceptions.UnexpectedServername as e:
AttributeError: module 'protonvpn_nm_lib.exceptions' has no attribute 'UnexpectedServername'

Although I have installed ProtonVPN through OpenSUSE 15.5 OSS repository, it only lists ProtonVPN officially for Tumbleweed here
https://software.opensuse.org/package/protonvpn-gui

Title says OpenVPN, content says ProtonVPN. Which is correct?

Are you using NetworkManager?

It should be ProtonVPN.

Cannot edit anymore. Is there a moderator/admin who can edit it for me?

I am not using NetworkManager.
I am using Wicked Service as configured in YaST Network Settings.

Although ProtonVPN is not listed officially for Leap 15.5 it does exist here in the OSS distribution repository.
https://download.opensuse.org/distribution/leap/15.5/repo/oss/noarch/protonvpn-gui-1.12.0-bp155.1.5.noarch.rpm

OpenSUSE has built ProtonVPN through GitHub packages. Though the ProtonVPN GitHub project has now been archived.

And it now says to go to Download VPN for Linux | Proton VPN
Although ProtonVPN does not support OpenSUSE, only Fedora.

As is obvious from the log, your application expects NetworkManager. IIRC when I briefly looked at ProtonVPN, it indeed created NetworkManager connection profiles on the fly. I have no idea if NM is optional, you need to ask the ProtonVPN support.

I could try to switch from Wicked to NetworkManager, and see if that works.

Edit: I switched to NetworkManager, and now ProtonVPN works.

Although somewhat troublesome that I have to authenticate with root on every connect/disconnect.

@DJViking You check the box to allow the connection for all users… enter root password and won’t ask again.