安装和导入 Python 包的多个版本

Posted

技术标签:

【中文标题】安装和导入 Python 包的多个版本【英文标题】:Installing and importing multiple versions of a Python package 【发布时间】:2020-05-20 00:01:02 【问题描述】:

我正在使用使用 pandas==0.23 的 Dataiku DSS v6.0,并且无法手动升级。我也在尝试使用modin==0.6,它只与pandas==0.25 兼容。我曾尝试使用需要pandas==0.23modin==0.3,但这个旧版本使用我正在调用的一些pandas 方法会引发异常。

有什么解决方法吗?我可以以某种方式强制modin==0.6 接受pandas==0.23 吗?否则有什么方法可以同时安装pandas==0.23pandas==0.25 并强制DSS 使用0.23 和modin 使用0.25?

【问题讨论】:

这对https://github.com/mitsuhiko/multiversion有帮助吗? 这个包是为 Python 2.x 构建的,我使用的是 3.6.4,所以 pip3 找不到包。另外,我不相信使用 9 年未更新的软件包! 我找不到任何相关的解决方案。这个article 谈到了这类问题。我会研究这个主题,也许我会自己编写一个解决方案。 这可能是可能的,但据我所知,这会很困难。 Mitsuhiko 的multiversion 是一种有趣的方法。你也可以试试看你能走多远:"Multi-version installs" from PyPA's Python Packaging User Guide。否则,通过使用importlib 破解一些自定义导入器,这里有一些示例:pymotw.com/3/sys/imports.html#custom-importers 【参考方案1】:

从 DSS 8.0.0 Pandas 1.0 is supported开始

但是,modin 的最新版本依赖于pandas 的更新版本; modin==0.8.0 允许 pandas==1.0.5 以便最新版本的 modin 与今天的 DSS 兼容

【讨论】:

【参考方案2】:

Dataiku 提供了 code environments 的概念。通过使用此功能,您可以为自己的代码或其他特定操作设置一组独立的依赖项。

【讨论】:

以上是关于安装和导入 Python 包的多个版本的主要内容,如果未能解决你的问题,请参考以下文章

python 项目环境包的名称和版本导出和导入

纱线安装同一个包的多个版本

在centos中部署多个python版本

Windows安装多个python解释器

pyharm环境配置

在包含多个包的 repo 中,每个包的版本应该代表啥?