无法使用 python-openvpn-client api 连接到 VPN

问题描述 投票:0回答:1

我有一个 pyhton 程序,我使用 python-openvpn-client API 使用 .ovpn 配置文件连接到 VPN 服务器。

我已经从官网安装了python 3.13.1。然后我创建了一个虚拟 python 环境以在我的 python 项目中使用。

我已经成功安装了 python-openvpn-client (版本 0.0.1)包,它要求 python >= 3.9。我使用以下命令将其安装在我的虚拟环境中:

pip install python-openvpn-client

我从这里安装了OpenVpn。我使用的是 OpenVPN 2.6.12 版本 - 2024 年 7 月 18 日发布。

然后我做如下:

from openvpnclient import OpenVPNClient

def connect_to_vpn(config_path):
    vpn = OpenVPNClient(config_path)

    try:
        vpn.connect()
        while not vpn.is_connected():
            print(f"Status: {vpn.status}")
            sleep(2)

        print("Connection successfully established.")
        return vpn
    except Exception as e:
        print(f"Error connecting to VPN server: {e}")
        return None

config_path 是 .ovpn 文件的完整路径。

执行代码行

vpn.connect()
时抛出异常:

module 'signal' has no attribute 'SIGUSR1'

如果我从 OpenVPN 应用程序导入相同的 .ovpn 文件并连接到 VPN 服务器,则可以正常工作,但不能从我的 python 程序中进行。

我的平台是Windows 10 Pro。

那么我做错了什么?

python openvpn
1个回答
0
投票

SIGUSR1
是 Windows 中不存在的信号,仅存在于类 UNIX 系统中。事实上,在包python-openvpn-client
PyPI页面中明确指出:

该功能经过测试可在 macOS 和 Linux 上运行(图片:

macOS-latest
ubuntu-24.04
)。

因此,您要么必须使用 Windows 支持的包来更改库,要么使用替代解决方案,例如直接从 python 调用脚本(可以在此处找到示例)

© www.soinside.com 2019 - 2024. All rights reserved.