如何让不同版本的 Python 包共存

Posted

技术标签:

【中文标题】如何让不同版本的 Python 包共存【英文标题】:How do I get different versions of Python packages to coexist 【发布时间】:2021-12-06 02:17:03 【问题描述】:

我已经为我的 project1 安装了版本 1.2.0 的 kafka 包,当我为 project2 安装版本 1.3.0 时,之前的版本被覆盖,然后 project1 将无法运行, 我可以做些什么来保持这两个项目正常运行?

D:\soar\totems-siip-soar-plugins\totems-siip-soar-plugins-pycommon>pip show kafka
Name: kafka
Version: 1.2.0
Summary: Pure Python client for Apache Kafka
Home-page: https://github.com/dpkp/kafka-python
Author: Dana Powers
Author-email: dana.powers@gmail.com
License: Apache License 2.0
Location: c:\users\administrator\appdata\local\programs\python\python39\lib\site-packages
Requires: six
Required-by: totems-pycommon

当我安装其他版本时:

D:\soar\totems-siip-soar-plugins\totems-siip-soar-plugins-pycommon>pip install kafka==1.3.0
Looking in indexes: http://192.168.218.125:8081/repository/pypi_group_test/simple
Collecting kafka==1.3.0
  Downloading http://192.168.218.125:8081/repository/pypi_group_test/packages/kafka/1.3.0/kafka-1.3.0-py2.py3-none-any.whl (193 kB)
     |████████████████████████████████| 193 kB ...
Installing collected packages: kafka
  Attempting uninstall: kafka
    Found existing installation: kafka 1.2.0
    Uninstalling kafka-1.2.0:
      Successfully uninstalled kafka-1.2.0
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
totems-pycommon 1.0.0 requires kafka==1.2.0, but you have kafka 1.3.0 which is incompatible.
Successfully installed kafka-1.3.0

【问题讨论】:

你可以使用 virtualenv 使用 conda 环境。这使您可以为每个项目设置一个单独的 python 环境,如果需要,可以使用不同的 python 版本 你可以使用pkg_resources在运行时维护不同版本的需求,虽然它有局限性。看看这个packaging.python.org/guides/multi-version-installs @QuantumMecha 谢谢,我尝试将我的项目部署在多个 conda 环境中,它们不会相互影响 【参考方案1】:

你可以使用python的venv来创建带有独立包的独立环境

要创建环境,您可以使用以下命令:

python3 -m venv /some/path/env-name

之后,您可以使用它来激活它

/some/path/env-name/Scripts.bat            # on Windows
source /some/path/env-name/bin/activate    # on Linux

您在环境处于活动状态时安装的软件包仅在该环境中可用。通过为每个项目设置环境,您可以避免您所说的那种冲突。

【讨论】:

以上是关于如何让不同版本的 Python 包共存的主要内容,如果未能解决你的问题,请参考以下文章

Win10下python不同版本同时安装并解决pip共存问题

C程序中让两个不同版本的库共存

windows下多个python版本共存

如何在linux下安装多个不同版本的PHP

如何强行卸载自己windows下的python-CSDN论坛

Visio2016和office2016不能共存