在 Virtualenv 中安装 Yum/Dnf

在 Virtualenv 中安装 Yum/Dnf

我已经创建了一个 Virtualenv (使用 python3.6)并想在该环境中安装 yum/dnf 包。有什么办法可以做到这一点吗? Asimport dnfimport yum在该环境中给我错误 -> ModuleNotFoundError: No module named 'dnf'ModuleNotFoundError: No module named 'yum'分别。

答案1

好吧,这就是 virtualenv 的意义:将其与系统的 python 包分开,在本例中是这样dnf。创建 virtualenv 时有一些方法可以打破这个问题:

usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] [--upgrade] [--without-pip] [--prompt PROMPT] [--upgrade-deps] ENV_DIR [ENV_DIR ...]

Creates virtual Python environments in one or more target directories.

positional arguments:
  ENV_DIR               A directory to create the environment in.

options:
  -h, --help            show this help message and exit
  --system-site-packages
                        Give the virtual environment access to the system site-packages dir.

因此,请--system-site-packages在创建虚拟环境时使用。


您可能确实想要单独安装 DNF。可以理解的是,作为 100% 发行版特定的工具,没有可用的 pypi 包。因此,手动安装仍然有效,如 dnf git repo README 中所述。


笔记:DNF 仍将使用 /etc/ 中的 DNF 配置、/var 中的缓存、/lib 中的库并安装到系统根目录。如果你想改变它,你需要告诉它使用不同的配置文件。

答案2

Yum 和 dnf 是 Linux 包管理器。在 Virtualenv 中,您可以通过 pip(python 包管理器)安装 Python 包。

相关内容