Python wheel反依赖
Python wheel anti-dependency
我正在管理一个 python 项目,该项目可以以两种不同的变体发布,例如 "full" 和 "lightweight",称为my-project
和 my-project-lw
。两者都使用相同的顶级名称,例如myproject
。我有一个脚本,它切断了项目的 "heavy" 部分,并构建了两个带有依赖项的 wheel 可安装档案(轻量级的要少得多)。一切正常,我可以使用轮子安装它们。
现在我想确保用户不会同时安装两个软件包。理想情况下,我希望 pip 在安装另一个时卸载一个,或者至少在另一个存在时失败(这样用户就必须手动卸载当前的)。
否则,当您安装 my-project
包时,它会安装到 /lib/python3.6/site-packages/myproject
,然后当您安装 my-project-lw
包时,它会覆盖同一文件夹中的文件,因此您会得到一个当一些文件来自 "full" 而另一些来自 "lightweigth" 时出现奇怪的混合,这不好。
有没有办法指定反依赖?以某种方式将它们标记为相互排斥?谢谢!
Pip 不支持。另请参阅相关的 'obsoletes' 元数据。 https://github.com/pypa/packaging-problems/issues/154
我正在管理一个 python 项目,该项目可以以两种不同的变体发布,例如 "full" 和 "lightweight",称为my-project
和 my-project-lw
。两者都使用相同的顶级名称,例如myproject
。我有一个脚本,它切断了项目的 "heavy" 部分,并构建了两个带有依赖项的 wheel 可安装档案(轻量级的要少得多)。一切正常,我可以使用轮子安装它们。
现在我想确保用户不会同时安装两个软件包。理想情况下,我希望 pip 在安装另一个时卸载一个,或者至少在另一个存在时失败(这样用户就必须手动卸载当前的)。
否则,当您安装 my-project
包时,它会安装到 /lib/python3.6/site-packages/myproject
,然后当您安装 my-project-lw
包时,它会覆盖同一文件夹中的文件,因此您会得到一个当一些文件来自 "full" 而另一些来自 "lightweigth" 时出现奇怪的混合,这不好。
有没有办法指定反依赖?以某种方式将它们标记为相互排斥?谢谢!
Pip 不支持。另请参阅相关的 'obsoletes' 元数据。 https://github.com/pypa/packaging-problems/issues/154