同一Python环境中可以共存两个版本的库吗?

2 投票
1 回答
1401 浏览
提问于 2025-04-15 12:33

C语言的库有一种很不错的“晚绑定”方式,它会记录在链接时使用的库的确切版本,因此即使安装了多个相同库的版本,程序也能找到正确的文件。

那么在Python中能做到这一点吗?

具体来说,我在做一个Python项目,使用了一些第三方库,比如paramiko。现在paramiko的版本是1.7.4,但有些发行版提供的是旧版本,同时Python解释器的版本差不多。

当然,我希望能支持尽可能多的配置,而不仅仅是最新的发行版。但是如果我把paramiko的版本升级到比旧发行版提供的版本新,我就会遇到几个问题:1)会让包管理器很麻烦;2)可能会因为库版本不兼容而导致一些现有应用程序出问题;3)如果包管理器决定覆盖我自定义的安装,可能会导致我的安装被破坏。

在Python中有没有办法干净利落地解决这个问题?(也就是说,我该怎么设置,代码应该是什么样的)。理想情况下,它应该能在site_libraries中安装多个版本的库,让我的脚本选择正确的版本,而不是维护一个私有目录,里面放着一堆手动安装的库。

附注:我可以把Python程序编译成一个二进制文件,把所有必要的依赖项都打包进去,但这有点违背使用发行版提供的解释器的初衷。不过我在Windows上是这么做的。

1 个回答

8

你可能想了解一下 virtualenv 这个工具。

撰写回答