如何在虚拟环境中使用 Python nftables 库?

How can I use the Python nftables library in a virtual environment?

Debian 有一个名为 python3-nftables 的软件包。您可以使用 apt 安装它。它可以让您与 nftables(现代 iptables 的替代品)进行交互。

通常,当apt有一个Python库时,该库也可以在pypi.org上找到,这意味着该库可以包含在一个requirements.txt文件中,并在设置虚拟环境时与任何其他 Python 库一起安装。不幸的是,据我所知,这个包在 pypi.org.

上不可用

如果我用 apt 和 运行 python3 安装它,我可以 import nftables。伟大的。 问题是,当你进入虚拟环境并尝试同样的事情 - import nftables 时,它不会被发现,因为默认情况下,虚拟环境会忽略任何使用 apt.[= 安装的系统库。 25=]

当然,您可以在创建虚拟环境时告诉它包含带有 --system-site-packages 的那些,但默认情况下未启用它是有原因的。

安装 python3-nftablesapt 后,我还可以将包 (/usr/lib/python3/dist-packages/nftables) 直接复制到我的项目文件夹中,并将其包含在我项目的 git 仓库中.这行得通,但似乎有点 hackey。

是否有正确的方法在虚拟环境中安装 nftables 库,而不是在系统范围内安装它,并强制虚拟环境看到它?

源代码位于https://salsa.debian.org/pkg-netfilter-team/pkg-nftables/-/tree/master/py。有setup.py所以你可以做

pip install 'git+https://salsa.debian.org/pkg-netfilter-team/pkg-nftables#egg=nftables&subdirectory=py'