我编写了一个依赖于 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 不支持的其他软件包。
添加回答
举报
0/150
提交
取消