假设我有一个包foo,foo打包了我在多个Python脚本中使用的二进制共享对象。
现在,我想推出一个新的突破更新到Foo。
semvar中具有不同主要版本的旧依赖项可以在PyPI上分发吗?如果是这样的话,是怎么做的?
发布于 2018-01-19 17:12:39
Pypi可以并将跟踪同一包的多个版本,而不会出现问题。在安装带有pip的包时,还可以显式引用包的特定版本。
但是,给定环境(或虚拟环境)只能携带给定包的单个版本。如果您要求pip将栏更新为V2,那么FOO也将被更新,FOO V1将被替换。
要在同一台计算机上同时使用FOO V1和FOO V2进行开发,您必须使用virtualenv并创建一个单独的虚拟环境,每个版本的FOO将驻留在其中而不受干扰。每个网站都有自己的站点--每个包都包含一个特定版本的包。
Virtualenv将使用主安装作为模型创建python的备用“安装”。然后,您可以切换到virtualenv,并在其中安装您想要的任何包,它们将保留在这个特定的环境中。
停用将使您返回到全球环境。
创建第二个环境,并在其中安装一组不同的包。
然后,通过从每个环境运行激活脚本,您可以轻松地从一个切换到另一个(取决于您的平台,实际脚本可能略有不同,在windows下,如果您喜欢使用powershell,则在env-root/ script /activate.bat或activate.ps1中)。
安装虚拟主机
pip install virtualenv在当前文件夹中创建环境FIZ
virtualenv FIZ激活此环境(假设windows普通外壳)
FIZ\Scripts\activate.bat您将看到您的提示更改,添加FIZ,说明您在此环境中。您安装的任何东西都将仅限于FIZ环境,并且只在激活后才可用。
pip install click例如,将在最新版本中安装单击(帮助创建命令行接口的库)。
pip install click==6.1将删除任何版本的单击,并以版本6.1替换
使环境失活
deactivate创建第二个环境FUZ
virtualenv FUZ激活此环境将允许您安装与FIZ中存在的不同版本的click (或任何其他版本),这两者都将在您的计算机上同时存在,但在任何特定时间只能使用一个。尽管从技术上讲,您可以打开两个shell窗口,同时激活两个环境。
希望这能帮上忙!
这里有一些关于这个问题的补充读物
最后,我热情地推荐了Hitchhiker蟒蛇指南,它帮助我加快了速度。
https://stackoverflow.com/questions/48332046
复制相似问题