如何从 virtualenv 中“导入 apt”?

我编写了一个依赖于 Debian 软件包python3-apt的 Python 实用程序脚本:

import apt


...


def get_packages():

    cache = apt.Cache()

    for pkg in cache:

        if pkg.installed and pkg.name in PACKAGE_LIST:

            yield pkg.name

我现在正在将该脚本扩展为一个项目,最终目的是使其在 PyPI 上可用和/或作为 Debian 软件包本身。

我使用 virtualenvs 来隔离我的 Python 开发环境。我需要将什么包名称(或路径)添加到我的 virtualenv 中,以便我可以import apt从该环境中调用?

到目前为止我已经尝试过:

  • 适合 PyPI。奇怪的旧版本。

  • 文本。目前不支持apt。

  • PyPI 上以“apt”开头的其他内容。他们都不是简单的中介python3-apt


陪伴而非守候
浏览 62回答 1
1回答

慕侠2389804

您可以使用 Pipenv 实现此目的,如下所示(类似的说明应该适用于其他 venv 管理器):pipenv --site-packages  # see note 1PIP_IGNORE_INSTALLED=1 pipenv install  # see note 2您更有可能将其运行为:pipenv --site-packagesPIP_IGNORE_INSTALLED=1 pipenv install -e . --dev# treats codebase as a package, also installs dev dependencies注 1:我们必须访问系统包(又名站点包),以便我们可以import apt.注 2: ...但我们更喜欢 virtualenv 包而不是系统包。有关详细信息,请参阅 https://pipenv.pypa.io/en/latest/advanced/#working-with-platform-provided-python-components。评论:这意味着 Pipfile 中未定义的所有其他系统包也可以在 venv 中使用。您必须记住,使用相同代码库的其他开发人员不一定可以使用它们。如果你有一个基本的 CI 环境,它应该能够捕捉到这一点。此方法适用于 vext 不支持的其他软件包。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python