为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 virtualenv 中“导入 apt”?

如何从 virtualenv 中“导入 apt”?

陪伴而非守候 2023-08-15 17:33:18
我编写了一个依赖于 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。
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

您可以使用 Pipenv 实现此目的,如下所示(类似的说明应该适用于其他 venv 管理器):


pipenv --site-packages  # see note 1

PIP_IGNORE_INSTALLED=1 pipenv install  # see note 2

您更有可能将其运行为:


pipenv --site-packages

PIP_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 不支持的其他软件包。


查看完整回答
反对 回复 2023-08-15
  • 1 回答
  • 0 关注
  • 60 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信