我已经创建了一个 Virtualenv (使用 python3.6)并想在该环境中安装 yum/dnf 包。有什么办法可以做到这一点吗? Asimport dnf
或import 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 包。